Haskell:无法导入 System.Random

标签 haskell

我已经通过找到的说明在 MacOS Mojave 上安装了 Haskell here ,即使用 stack 命令。然而,

import System.Random

引入了ghci错误消息找不到模块“System.Random”。通过寻找解决方案,我遇到了这个discussion on Stackoverflow ,我按照 Michael Snoyman 发布的建议尝试该命令

stack install random

再次进入 ghci 之前。该命令产生了大量输出,其中一部分与 System.Random 相关:

random> configure

random> Warning: random.cabal:15:2: Tabs used as indentation at 15:2, 16:2, 17:2

random> Configuring random-1.1...

random> build

random> Preprocessing library for random-1.1..

random> Building library for random-1.1..

random> [1 of 1] Compiling System.Random

random>

random> /private/var/folders/bg/zjbyc9fj64d5kr98_x5bfjtm0000gn/T/stack946/random-1.1/System/Random.hs:43:1: warning: [-Wtabs]

random> Tab character found here, and in 74 further locations.

random> Please use spaces instead.

random> |

random> 43 | (

random> | ^^^^^^^^

现在我有一些问题:

(1) 我到底用这个 stack install 命令做了什么?我知道在不了解命令用途的情况下运行命令是有风险的,但事实是这正是我所做的。我的猜测是,这是获取一些库(类似于 Ruby 中的 Gems 或 Perl 中的 CPAN)并将它们添加到 Haskell 实现中。但如果这些是“官方”库,为什么我会收到语法错误?我是否应该在已下载的源上运行 expand 以摆脱选项卡?

(2) 这真的是安装 System.Random 的官方方法吗?还是有更好的方法来获取 Random 模块?我预计这种模块已经包含在发行版中,就像许多其他模块一样。

(3) 我现在可以做什么来获取我的随机数?因为我仍然收到找不到模块的错误(毫不奇怪,如果随机库的源代码有语法错误)

最佳答案

执行以下 2 个步骤来安装 stackSystem.Random

brew install haskell-stack
stack ghci --package random
Configuring GHCi with the following packages:
GHCi, version 8.6.5: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /private/var/folders/5d/b7qfjxcd27v_3pgvdxzz1vr8nncyxt/T/haskell-stack-ghci/2a3bbd58/ghci-script
Prelude> import System.Random
Prelude System.Random>

stackage是 hackage 中精选的一组软件包,stack 是一个构建系统工具集。是的,它类似于 CPAN,但不是系统范围的,就像 Python 的 virtualenv。

关于Haskell:无法导入 System.Random,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59618016/

相关文章:

haskell - 你如何在haskell中使用元素之间可变距离的范围

haskell - 为什么 `Vector.length (Vector.replicate n 0)"没有融合?

database - 尝试使用持久性时没有 Control.Monad.Logger.MonadLogger 的实例

haskell - 我可以要求 GHC 在开发过程中为每个模块导入 Debug.Trace 吗?

haskell - 如何将 ByteString 转换为 Int 并处理字节序?

haskell - 确定函数是独立的还是类型类的一部分

haskell - 如何模拟货币、货币和在货币之间交换货币的银行?

list - haskell:调用具有不同类型列表的函数

haskell - "ls"在 Haskell 中是什么意思?

haskell - Haskell 中有 "chain"monad 函数吗?