Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 已加载模块对象的模块文件路径_Haskell_Module - Fatal编程技术网

Haskell 已加载模块对象的模块文件路径

Haskell 已加载模块对象的模块文件路径,haskell,module,Haskell,Module,在python中,它是 import argparser print argparser.__file__ 我的问题是: 如何在haskell中执行相同操作,即使用haskell中加载的模块对象获取模块的文件位置 在haskell中,库文件是不可读的.hi格式。有没有办法安装cabal,我可以将源文件下载到~/.cabal并在本地编译 这并不能完全回答您的问题,但这就是我如何在Haskell中找到模块位置的方法。假设我有一个名为Data.Text的模块,我想找到它的位置。然后我首先发现它的包

在python中,它是

import argparser
print argparser.__file__
我的问题是:

  • 如何在haskell中执行相同操作,即使用haskell中加载的模块对象获取模块的文件位置
  • 在haskell中,库文件是不可读的
    .hi
    格式。有没有办法安装
    cabal
    ,我可以将源文件下载到
    ~/.cabal
    并在本地编译
      这并不能完全回答您的问题,但这就是我如何在Haskell中找到模块位置的方法。假设我有一个名为
      Data.Text
      的模块,我想找到它的位置。然后我首先发现它的包名:

      $ ghc-pkg find-module Data.Text
      /nix/store/cq4qqjii3s9ghr6p59kkrdf44wnyhpp4-ghc-7.8.4/lib/ghc-7.8.4/package.conf.d
      /home/sibi/.ghc/x86_64-linux-7.8.4/package.conf.d
         text-1.2.0.4
      
      现在我知道包名是
      text-1.2.0.4
      。现在,我要做的就是使用此命令查找模块位置:

      $ ghc-pkg describe text-1.2.0.4   # (Just text should also work)
      
      这将给你一个大的输出。您感兴趣的字段是
      导入目录
      库目录


      要查找已安装软件包的来源,您可以使用@Martin提到的
      cabal get

      这并不能完全回答您的问题,但这就是我在Haskell中查找模块位置的方法。假设我有一个名为
      Data.Text
      的模块,我想找到它的位置。然后我首先发现它的包名:

      $ ghc-pkg find-module Data.Text
      /nix/store/cq4qqjii3s9ghr6p59kkrdf44wnyhpp4-ghc-7.8.4/lib/ghc-7.8.4/package.conf.d
      /home/sibi/.ghc/x86_64-linux-7.8.4/package.conf.d
         text-1.2.0.4
      
      现在我知道包名是
      text-1.2.0.4
      。现在,我要做的就是使用此命令查找模块位置:

      $ ghc-pkg describe text-1.2.0.4   # (Just text should also work)
      
      这将给你一个大的输出。您感兴趣的字段是
      导入目录
      库目录


      要查找已安装软件包的源代码,您可以使用@Martin提到的
      cabal get

      我很确定您不能在Haskell中做第一件事。但是,如果您只想自己找到该路径,可以使用以下命令

      ghc-pkg describe <package>
      
      ghc包装描述
      
      其中,
      是模块所属包的名称

      要下载软件包的源代码,只需使用

      cabal get <package>
      
      阴谋集团
      

      它会将没有任何依赖项的源代码下载到您当前目录中的一个目录中。

      我很确定您不能在Haskell中做第一件事。但是,如果您只想自己找到该路径,可以使用以下命令

      ghc-pkg describe <package>
      
      ghc包装描述
      
      其中,
      是模块所属包的名称

      要下载软件包的源代码,只需使用

      cabal get <package>
      
      阴谋集团
      

      它会将没有任何依赖关系的源代码下载到您当前目录中的目录
      -

      后者可以通过
      cabal get
      实现。但是老实说,从
      cabal install
      的文档中可以明显看出这一点。后者可以通过
      cabal get
      实现。但老实说,从
      阴谋集团安装的文档中可以明显看出这一点。