使用WinGHCi,如何实现以下代码?
soma :: Int -> Int
soma 1 = aluno 1
soma n = aluno n + soma (n-1)我目前正在使用以下工具编写多行代码
:{
...
:}但在这种情况下,这似乎并没有解决问题。另外,为什么像这样的东西
soma x y = x + y工作,当我在WinGHCi中工作的时候?只有在使用let关键字的情况下才能执行此操作
let soma x y = x + y -- valid Haskell code尽管在大多数文献中,人们似乎并不使用它(我假设这是因为他们正在编译代码?)。
谢谢
发布于 2010-09-19 10:08:49
haskell编程的通常工作流程是将函数定义放到一个文件中,然后使用ghci加载该文件以测试函数。
要在ghci中定义函数(或变量),您需要像在do-block中一样使用let,即let f x = x+1。要定义具有类型签名或多个大小写的函数,请使用;分隔各行,如下所示:
let soma :: Int -> Int; soma 1 = aluno 1; soma n = aluno n + soma (n-1)您可以使用:{ }在几行代码中编写此代码,但在每行的末尾仍然需要;。
发布于 2010-09-19 10:07:07
GHCi在IO monad中运行(我认为),因此您必须使用这样的关键字才能让它理解您的意思。
为什么不直接将代码写到一个名为'soma.hs‘的文件中,然后使用以下命令将其加载到ghci中:
:l soma.hs这应该也行得通。
https://stackoverflow.com/questions/3744252
复制相似问题