ghci相关内容

使用IO monad的Haskell单元测试

我正在尝试为haskell函数编写HUnit测试,这些函数返回IO monad,因为它们执行文件I/O.有什么办法吗?现在,我正在尝试编写一个仅返回Bool的方法,可以作为我的测试 combine :: FilePath->FilePath->布尔结合fp1 fp2 =做cs ..
发布时间:2021-05-10 20:13:48 其他开发

Haskell/GHCI中的别名

是否可以在ghci.conf文件中设置别名? 例如,我在bash.bashrc中具有 alias sbh ='cd Desktop/Sandbox/Haskell',可以让我快速跳转到指定的文件夹.通过在ghci.conf文件中添加别名,是否可以在ghci中实现同样的目的? 我在ghci.conf中已经有一些命令,但是我想设置多个别名以跳转到文件夹位置,而不必使用:cd home/sa ..
发布时间:2021-05-10 20:13:45 其他开发

无法加载在Haskell中使用标准库的文件

嗨,我使用GHCI,通常可以加载我的文件.现在,我需要加载一个使用随机数的文件.我收到此错误. Chatterbot.hs:3:1:错误:找不到模块"System.Random"使用-v查看搜索到的文件的列表.|3 |导入System.Random|^^^^^^^^^^^^^^^^^^^^^ 这很奇怪,因为它适用于我的朋友,我的朋友也刚刚安装了GHCI,除了我什么都没做.主要区别在于我在W ..
发布时间:2021-05-10 20:13:42 其他开发

Haskell:一次只能通过:load加载一个文件

假设我有两个模块NecessaryModule1&NecessaryModule2(如帖子中概述的那样:Haskell:将所有文件加载到当前目录路径中.然后我在WinGHCi和GHCi中都注意到,如果这样做: >:load NecessaryModule1[1之1]编译NecessaryModule1(NecessaryModule1.hs,已解释)好的,模块已加载:NecessaryModul ..
发布时间:2021-05-10 20:12:44 其他开发

在GHCi中,为什么我不能在REPL中显示“纯1"?

我尝试为 a 分配提升的值. λ>:m Control.Applicativeλ>设a =纯1 当我在REPL中评估 a 时,它将打印 1 . λ>一种1个 因此,我认为可能为 a 实现了 show 的实现,并尝试了以下方法: λ>显示一个 但是GHCi会引发错误: :70:1-4:没有因使用“显示"而产生(Show(f0 a0))的实例类型变量"f ..
发布时间:2021-05-09 20:26:58 其他开发

如何在两次GHCi重新加载之间保持环境?

基本上,当我:load name.hs 时,变量和绑定都消失了. 有什么办法告诉ghci保留所有内容吗? 解决方案 要加载新模块,可以使用 Prelude>:m + Mymodule 但是重新加载和保持交互式绑定通常是不可能的.重新加载本质上是忘记了所有模块,然后再次加载它们.绑定可能取决于已经加载的模块.依赖关系逻辑规定,当GHCI忘记模块时,它还需要忘记依赖于它的所有内容 ..
发布时间:2021-05-04 20:27:47 其他开发

有没有办法编写ghci会话脚本?

我的目标是通过一些步骤使 ghci 从bash脚本运行,然后干净地退出.在线评论说为此使用 runhaskell . 这是我要运行的命令: ghci>导入System.Randomghci>随机(mkStdGen 100)::(Int,StdGen) 预期结果类似于: (-3633736515773289454,693699796 2103410263) 当我将其放入文件 ra ..
发布时间:2021-04-14 20:19:19 其他开发

是否可以在GHCi中定义新的ADT

在评论ghci的新功能时,我希望ghci能够声明类型声明和声明新的ADT类型,但有人告知这确实可行,在搜索后我发现 此页面,它告诉了我可以做到 let numUniques' :: (Eq a) => [a] -> Int; numUniques' = length . nub 显然,相同的语法也适用于模式匹配(例如,让1 = True; 2 = False). 创建ADT将使它变 ..
发布时间:2020-11-14 18:39:09 其他开发

需要帮助编写道具以进行空白:: Sudoku→[Pos](Haskell)

我偶然发现了这个线程 Haskell列表理解,现在我正尝试为此编写一个道具指出此函数中的所有单元格实际上都是空白的,但是在尝试编译时,只有以下错误消息才达到目的. {- Property that states that all cells in the blanks list are actually blank -} prop_blank_pos :: Sudoku → Bool pr ..
发布时间:2020-11-14 18:39:08 其他开发

找出功能属于哪个模块

在ghci(haskell)中,有一个命令会告诉我函数属于哪个模块(在已加载的模块中).例如如果该函数名为whichMod,则它将按以下方式工作: Prelude>whichMod take Prelude Prelude>whichMod sort Data.List 解决方案 您需要:i命令(:info的缩写). Prelude> :i take take :: Int -> ..
发布时间:2020-11-14 18:39:03 其他开发

在ghci中,如何删除现有绑定?

我从类似于"Prelude Api.Facility Control.Monad.IO.Class> let t = getBadgesNot 1 (Nothing) (Just 1) :55:5: warning: [-Wname-shadowing] This binding for ‘t’ shadows the existing binding defined a ..
发布时间:2020-11-14 18:38:01 其他开发

研究ghci(->)并尝试扎根

我正在尝试使用ghci调查类型(->). 我很想理解为什么我可以问:t (+)而不是:t (->): Prelude> :t (->) :1:2: error: parse error on input ‘->’ 幸运的是,两个运算符都允许使用:i进行调查,所以我想都是因为(+)是Num类的方法,而(->)是数据. 深入研究(->): Prel ..
发布时间:2020-11-14 18:36:56 其他开发

如何中止GHCI中的执行?

当我启动 ghci> last [0..] 我可以使用Ctrl + C中断它. 但是 ghci> last (repeat 0) 不能用Ctrl + C中止. GHCI默默地忽略了击键. 如何在GHCI中中止此命令?是虫子吗? 解决方案 (注意:我使用Linux,并在urxvt或gnome-terminal上运行zsh.如果使用其他操作系统,终端或Shell ..
发布时间:2020-11-14 18:36:48 其他开发