gpt4 book ai didi

haskell - 如何在我的计算机上使用 Haskell?

转载 作者:行者123 更新时间:2023-12-04 16:35:17 25 4
gpt4 key购买 nike

我正在学习我的第一个函数式编程语言,但在最初的后勤方面遇到了一些麻烦(教授基本上说,“以某种方式设置它”并且没有提供太多细节。)

无论如何,我有 Mac OS X 版本 10.6.8。首先,我在我的主目录中安装了 GHC,发现我可以在终端中使用命令“ghci”打开它。从那里(请原谅我完全缺乏知识),我按照教学大纲中模糊的说明打开了另一个窗口,其中包含我要为作业修改的 a1.hs 文件。当我完成定义一个函数时,我输入了命令“ghc a1-skeleton.hs”来打开解释器并加载它(这就是我要做的,对吧?)但得到了这个错误:

a1.hs:5:8:
Could not find module `System'
It is a member of the hidden package `haskell98-2.0.0.1'.
Use -v to see a list of the files searched for.

我猜这就像在 C++ 之类的语言中缺少“#include”或类似的东西。我只需要在特定目录中查找/添加一些东西吗?

另外,由于我没有马上理解这些东西,解释器到底是做什么的?它是在程序语言意义上跳过“编译”并只是尝试立即遵循 .hs 文件中的命令的程序吗?

谢谢!

更新::似乎是问题的代码:
  2 module Main where
3
4 import Test.HUnit
5 import System

最佳答案

问题可能是 System module 是旧的、非分层的名称。我认为您现在需要使用名为 System.Environment 的模块(取决于您要导入的确切功能)。

由于您没有使用这些模块中的任何功能,因此我无法确切告诉您要导入什么。在 GHCi 中,您可以像这样查看模块定义了哪些函数:

Prelude> :browse System.Environment
getArgs :: IO [String]
getEnv :: String -> IO String
getEnvironment :: IO [(String, String)]
getProgName :: IO String
withArgs :: [String] -> IO a -> IO a
withProgName :: String -> IO a -> IO a

您可以尝试摆脱 import System声明并加载文件。然后,您应该获得一些不在范围内的标识符。现在您可以将这些输入到 Hoogle (巧合的是,这将是你最好的 friend )看看它们是在哪里定义的。

我的理解是旧 System中的功能模块现在位于 System.Environment , System.Process System.Exit .如果您不想深入思考它,则可以导入所有三个:P。

关于haskell - 如何在我的计算机上使用 Haskell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com