gpt4 book ai didi

haskell - 如何在 GHCi 中转到新行?

转载 作者:行者123 更新时间:2023-12-02 18:46:40 25 4
gpt4 key购买 nike

我想写一个函数,像这样

double :: Int -> Int
double x = x + x

问题是在我写完第一行之后:

Prelude> double :: Int -> Int

我尝试按回车键转到下一行,但是当我这样做时,我得到:

<interactive>:84:1: Not in scope: `double'
Prelude>

看起来程序执行了第一行,但我不希望这样,我希望程序让我写第二行然后才编译执行

那么,我怎样才能转到 Haskell 中的下一行(我在 Mac OS 上使用终端)?

最佳答案

在 ghci 中,您必须将定义放在一行中,并以 let 开头(编辑:您不必以 let 开头 ghci 定义不再)。它与源文件中的不同:

ghci> let double :: Int -> Int; double x = x + x

您还可以使用 :{:} 进行多行定义:

ghci> :{
Prelude| let double :: Int -> Int
Prelude| double x = x + x
Prelude| :}
ghci> double 21
42

确保缩进第二个double以与第一个对齐——缩进很重要。

我建议在文本编辑器中完成大部分工作,然后将文件加载到 ghci 中(使用 :load,或将其作为命令行上的参数提供)并使用它。在实际编写代码时,我觉得 ghci 不太好用——它更擅长处理已经编写的代码。每当您修改文本文件时,ghci 中的 :reload (或只是 :r)。

关于haskell - 如何在 GHCi 中转到新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18469063/

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