【发布时间】:2015-12-03 23:58:56
【问题描述】:
我是 Haskel 的新手,想学习它。我想在haskell中的递归函数中打印中间值,但是我在输入“=”上的解析错误中陷入困境b = b + 50。
`main' t s a b c
| t > s = 0
| otherwise = do
print a
print b
print c
b = b + 50
c = b + 2 * a
main' (t+1) s (a+1) b c `
此代码的 C 等效项是
int calculate(t,s,a,b,c)
{
printf( "%d,%d,%d",a,b,c);
if(t > s)
return 0;
else
{
b = b + 50;
c = b + 2 * a;
return calculate (t+1,s,a,b,c);
}
}
int main()
{
calculate(0,10,2,6,7);
return 0;
}`
请帮我解决这个问题。在 C 中做起来并不难,但我不知道如何在 Haskel 中做。
【问题讨论】:
-
请发布您从编译器得到的错误
-
在do块中你需要
let语法。