“ls”在Haskell中意味着什么?

时间:2012-04-29 11:55:04

标签: haskell

我知道“xs”可用于表达列表中的其余元素 但我完全不知道Haskell中“ls”的含义是什么?

4 个答案:

答案 0 :(得分:10)

ls不是预定义的东西。它就是你绑定它的任何东西,就像xs一样。

例如,我认为您已经看过这样的例子:

sum [] = 0
sum (x:xs) = x + sum xs

由于模式xs,您在此处定义的变量(x:xs)得到绑定(将具有值)列表的其余部分。但这同样可以写成:

sum [] = 0
sum (l:ls) = l + sum ls

我们宁愿不调用变量l,因为它很容易与数字1(甚至真正混乱的字体上的管道符号|混淆)。

我们甚至可以写:

sum [] = 0
sum (head:tail) = head + sum tail

我们重复使用内置前奏函数headtail的名称,但这必然会导致混淆。

答案 1 :(得分:5)

haskell中用于命名引用列表的变量的经验法则是添加 -s ,就像英语中的常规复数一样。因此,如果您有x元素列表,请将其命名为xs。如果您有l,则l的列表将为ls

答案 2 :(得分:5)

我正在使用ls代替xs来处理 l 等列表的特殊情况。

答案 3 :(得分:2)

这是完全相同的事情。名字xs没有什么特别之处;按惯例分别命名列表x和xs,a和as,l和ls等的头部和尾部。