【发布时间】:2022-11-12 02:16:45
【问题描述】:
比如考虑下面的python代码,
n = 4
if n>3 :
n = 5
if n>2 :
n = 6
if n>1 :
n = 4
如何在haskell中实现这一点?
let n = 4
main :: IO()
main = do
if n>3 then let n = 5
if n>2 then let n = 6
if n>1 then let n = 4
试过这个,但给出了一个错误,正在寻找一些修改
【问题讨论】:
-
if语句后面必须跟else。因此你应该写if n>3 then ... else if n>4 then ... else ...。更惯用的方法是使用guards。还要注意不可变的 Haskell,因此您的程序不会更改n的值,这看起来像是您的意图。我的建议是定义一个函数f :: Int -> Int,它使用守卫来分支案例并返回期望值。 -
这也是一个愚蠢的示例程序,因为它与
if n > 1 then n = 4相同。
标签: if-statement haskell