代码之家  ›  专栏  ›  技术社区  ›  devoured elysium

使用WinGHCi的几个问题

  •  2
  • devoured elysium  · 技术社区  · 14 年前

    使用WinGHCi,如何实现以下代码?

    soma :: Int -> Int
    soma 1 = aluno 1
    soma n = aluno n + soma (n-1)
    

    我目前正在使用

    :{
    ...
    :}
    

    还有,为什么

    soma x y = x + y
    

    let

    let soma x y = x + y -- valid Haskell code
    

    尽管在大多数文献中,人们似乎并不使用它(我假设这是因为他们正在编译代码?)。

    谢谢

    2 回复  |  直到 14 年前
        1
  •  3
  •   sepp2k    14 年前

    haskell编程的通常工作流程是将函数定义放入一个文件中,然后用ghci加载该文件以测试函数。

    要在ghci中定义函数(或变量),您需要使用 let do -块,即。 let f x = x+1 . 要使用类型签名或多个案例定义函数,请使用 ;

    let soma :: Int -> Int; soma 1 = aluno 1; soma n = aluno n + soma (n-1)
    

    你可以用 :{ } 把它写成几行,但你仍然需要 ; 在每行的末尾。

        2
  •  2
  •   Robert Massaioli    14 年前

    GHCi在IO monad中运行(我认为),所以你必须使用let关键字,这样它才能理解你的意思。

    你为什么不把代码写进一个叫做'soma.hs公司'然后用一个:

    :l soma.hs
    

    这也应该管用。