我知道“xs”可用于表示列表中的其余元素,但我完全不知道“ls”在 Haskell 中是什么意思?
1098 次
4 回答
11
ls不是预定义的东西。它是你绑定到的任何东西,就像xs.
例如,我想你已经看过这样的例子:
sum [] = 0
sum (x:xs) = x + sum xs
xs由于 pattern ,您刚刚在此处定义的变量会被绑定(将具有值)列表的其余部分(x:xs)。但这同样可以写成:
sum [] = 0
sum (l:ls) = l + sum ls
不过,我们不想调用变量l,因为它很容易与数字混淆1(甚至是|真正混乱字体上的管道符号)。
我们甚至可以写:
sum [] = 0
sum (head:tail) = head + sum tail
我们重用了内置前奏函数的名称head和tail,但这势必会导致混淆。
于 2012-04-29T12:02:50.483 回答
5
在 haskell 中命名引用列表的变量的经验法则是添加-s,就像英语中的常规复数一样。因此,如果您有 hax元素列表,请命名它xs。如果你有一个l,列表l将是 ls。
于 2012-04-29T11:57:36.500 回答
5
我使用ls而不是列表列表xs的特殊情况。
于 2012-04-29T12:35:39.260 回答
2
这是完全相同的事情。xs 这个名字没有什么特别之处;将列表的头部和尾部分别命名为 x 和 xs、a 和 as、l 和 ls 等只是惯例。
于 2012-04-29T11:57:50.920 回答