【发布时间】:2019-04-03 20:52:02
【问题描述】:
我尝试使用加法并打印每个步骤,但它不起作用,有人可以帮帮我吗?
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
【问题讨论】:
-
你到底想做什么?请注意,Haskell 没有循环。它有递归。
-
对不起,我不是母语人士,我想做的是这样的:acc_addition 1;然后显示 1;2; 3;4;5
-
do不是 do-while 循环,它是完全不同的东西。如果您是 Haskell 初学者,我建议您先阅读 Learn You a Haskell。 -
我认为“do 和 while 循环”的措辞很不幸,其本意是“如何使用 'do' 编写这个等效的 while 循环?”,即“我该如何使这个尾递归函数单子?"
标签: loops haskell while-loop do-loops do-notation