Haskell 哈斯克尔:可以';随机输入系统

Haskell 哈斯克尔:可以';随机输入系统,haskell,Haskell,我已经通过找到的说明在MacOS Mojave上安装了Haskell,即使用stack命令。但是, import System.Random 引入了ghci,错误消息找不到模块“System.Random”。通过寻找解决方案,我意识到了这一点,我按照迈克尔·斯诺曼(Michael Snoyman)在那里发布的建议尝试了这个命令 stack install random 在再次进入ghci之前。该命令产生了大量输出,其中一部分与系统有关。随机: 随机>配置 随机>警告:随机。阴谋集团:15:2

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

import System.Random
引入了ghci,错误消息找不到模块“System.Random”。通过寻找解决方案,我意识到了这一点,我按照迈克尔·斯诺曼(Michael Snoyman)在那里发布的建议尝试了这个命令

stack install random
在再次进入ghci之前。该命令产生了大量输出,其中一部分与系统有关。随机:

随机>配置

随机>警告:随机。阴谋集团:15:2:制表符用作15:2、16:2、17:2的缩进

随机>配置随机-1.1

随机>构建

random>random-1.1的预处理库

random>为random-1.1.构建库

随机>[1/1]编译系统。随机

随机>

随机>/private/var/folders/bg/zjbyc9fj64d5kr98_x5bfjtm0000gn/T/stack946/random-1.1/System/random.hs:43:1:警告:[-Wtabs]

随机>制表符可在此处和74个其他位置找到

随机>请改用空格

随机>|

随机>43|(

随机>|^^^^^^^^

现在我想问一些问题:

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

(2) 这真的是让System.Random进入安装的官方方式吗?还是有更好的方式获得Random模块?我本以为这种模块已经包括在发行版中,就像许多其他模块一样


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

请执行以下两个步骤来安装
堆栈和
系统.Random

brew install haskell-stack
stack ghci --package random

是来自hackage的一组精心策划的软件包,
stack
是一个构建系统工具集。是的,它类似于CPAN,但不像Python的virtualenv那样是全系统的。

首先要像
~$stack repl--package random
发行版中包含的内容“由于GHC编译器没有一个发行版,所以有所不同。它被打包成多种形式,包含了更多或更少的包以及不同的时间已经安装了
stack
,并且
stack install random
产生了我发布的错误,是否建议按照正确的顺序重复这三个步骤?使用
stack ghci
启动ghci和只调用
ghci
有什么区别?1.这些不是错误,只是一个警告,你可以忽略它。2.
stack ghci
ghci
之间的区别在于
ghci
进程可用的一组库。stack包装ghci,设置安装在沙盒中的库路径。它类似于python virtualenv。在执行
堆栈设置时,stack会为每个项目创建一个沙盒。请阅读以下内容:非常感谢。使用
stack ghci
成功了。非常感谢stack快速入门指南。我一定会阅读它。
stack install
应该只用于构建具有您想要使用的可执行目标的包。例如
stack install hindent
,此命令将构建包并复制二进制到本地
bin
以便可以在shell中运行。为了使包可用于ghci会话,应使用
--package
参数。
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>