如何在 haskell 中使用 do 和 while 循环
how to use do and while loop in haskell
我尝试使用加法并打印每一步,但它不起作用,有人可以帮我吗?
addition x = x+1
acc_addition xs = do print xs
let result = addition xs
if result == 5
then return ()
else do
print result
addition result
你已经很接近了,你只需要在最后一步调用 acc_addition
而不是 addition
。从语法上讲,您的 let
语句还需要一个 in
:
addition x = x+1
acc_addition xs = do print xs
let result = addition xs in
if result == 5
then return ()
else do
print result
acc_addition result
当 运行 通过 ghci
:
*Main> acc_addition 1
1
2
2
3
3
4
4
它打印两次的原因当然是你有两个打印语句。
我尝试使用加法并打印每一步,但它不起作用,有人可以帮我吗?
addition x = x+1
acc_addition xs = do print xs
let result = addition xs
if result == 5
then return ()
else do
print result
addition result
你已经很接近了,你只需要在最后一步调用 acc_addition
而不是 addition
。从语法上讲,您的 let
语句还需要一个 in
:
addition x = x+1
acc_addition xs = do print xs
let result = addition xs in
if result == 5
then return ()
else do
print result
acc_addition result
当 运行 通过 ghci
:
*Main> acc_addition 1
1
2
2
3
3
4
4
它打印两次的原因当然是你有两个打印语句。