Haskell List函数

时间:2019-06-25 08:23:10

标签: haskell

我想知道为什么在Haskell中某些函数名称没有对称性:

例如:

  • head:获取第一个元素

  • last:获取最后一个元素

是否有充分的理由说明为什么head函数未命名为first,或者相反,last函数可以命名为end或类似名称。 / p>

1 个答案:

答案 0 :(得分:9)

Haskell函数具有两对列表函数:

  1. head :: [a] -> atail :: [a] -> [a];和
  2. init :: [a] -> [a]last :: [a] -> a

Learn You a Haskell for the Greater Good对此做了很好的说明:

enter image description here

head因此是列表的第一个元素,而tail是包含其余元素的列表。

init接受除最后一个元素以外的所有元素,而last接受最后一个元素。

Haskell中的列表从概念上讲是链接列表。通常,随机访问在列表处理中不是很常见。通常,大多数列表处理功能都会获取列表并像处理项目流一样处理列表。

通常nomenclature of linked lists [wiki]指定:

  

列表的 head是它的第一个节点。列表的 tail 可以引用列表的头之后的其余部分,也可以引用列表中的最后一个节点。在Lisp和某些派生语言中,下一个节点可以称为列表的cdr(发音为caner),而头节点的有效负载可以称为car