"ls"在Haskell中意味着什么?

XIA*_*ang 4 haskell

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

Tho*_*mas 10

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

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

sum [] = 0
sum (x:xs) = x + sum xs
Run Code Online (Sandbox Code Playgroud)

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

sum [] = 0
sum (l:ls) = l + sum ls
Run Code Online (Sandbox Code Playgroud)

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

我们甚至可以写:

sum [] = 0
sum (head:tail) = head + sum tail
Run Code Online (Sandbox Code Playgroud)

在这里我们再次使用的内置前奏函数的名称headtail,但这样势必会导致混乱.


Ric*_* T. 5

haskell中用于命名引用列表的变量的经验法则是添加-s,就像英语中的常规复数一样.因此,如果你有ha x元素列表,你可以命名它xs.如果你有l,l将会有 一份清单ls.


aem*_*xdp 5

我正在使用ls而不是l lts xs列表的特殊情况.

  • 我使用`xss` :) (4认同)