我是Haskell的新手,目前正在通过Real World Haskell.该书说,类型构造函数仅在类型签名中使用,而值构造函数在实际代码中使用.它还给出了一个声明示例,表明两者的名称彼此独立.为什么首先需要两个构造函数,如果在实际代码中只使用其中一个?由于我们不会在实际代码中使用类型构造函数,因此类型构造函数的用途是什么?
这些天我在闲暇时使用Haskell进行编程.作为一个使用命令式语言超过8年的程序员,我很难围绕一些功能结构(特别是折叠).我正在从项目Euler解决问题,并碰巧生成以下代码.
f (num, den) s | num*10 < den = s
| otherwise = f (ratio (num, den) s') s'
where s' = (s+2)
Run Code Online (Sandbox Code Playgroud)
可以使用折叠或其他一些功能构造来重写这种显式递归吗?我使用折叠的主要障碍是提出阶梯功能.最终我放弃了,并采取了递归.
编辑:此外,如何使函数内的另一个函数返回的输出作为调用函数的输入而不显式递归?