在阅读维基百科在Haskell 2010上的条目时,我偶然发现了这一点:
-- using only prefix notation and n+k-patterns (no longer allowed in Haskell 2010)
factorial 0 = 1
factorial (n+1) = (*) (n+1) (factorial n)
Run Code Online (Sandbox Code Playgroud)
"n + k模式"是什么意思?我想这是第二行,但我不知道它可能有什么问题.任何人都可以解释那里的问题是什么?为什么Haskell 2010中不允许使用这些n + k模式?
是否有可能在haskell中建立一个同时递归关系的系统?我正在努力实施
a(n)=3a(n-1)+2b(n-1)
b(n) = a(n-1) + 2b(n-1)
Run Code Online (Sandbox Code Playgroud)
输入:
a n = 3 * a (n-1) + 2 * b (n-1)
Run Code Online (Sandbox Code Playgroud)
输出:
<interactive>:103:25: error: Variable not in scope: b :: t -> a
Run Code Online (Sandbox Code Playgroud)
所以,我不能先定义一个没有定义b,但也不能定义b而不定义第一个.我不确定这样做是否可行?
PS:我在gchi工作