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