kil*_*tek 20 haskell coding-style identifier
我发现此代码在互联网上被剪断:
digits 0 = [0]
digits n = digits' n []
  where digits' 0 ds = ds
        digits' n ds = let (q,r) = quotRem n 10
                       in digits' q (r:ds)
sumOfDigits = sum . digits
有人可以快速解释digits n = digits' n []递归函数调用后的"'"符号()吗?我在Haskell(教程)中看到了一些其他的代码示例,但我不明白这个.一个快速的解释表示赞赏.
Don*_*art 37
撇号只是名称的一部分.它是Haskell中采用的命名约定(惯用法).
Haskell中的约定是,就像在数学中一样,变量名上的撇号表示与先前变量有某种程度相关或类似的变量.
一个例子:
let x  = 1
    x' = x * 2
in x'
x'与x撇号有关,我们用撇号表示.
顺便说一句,你可以在GHCi中运行它,
Prelude> :{ 
Prelude| let x  = 1
Prelude|     x' = x * 2
Prelude| in x'
Prelude| :}
2