Haskell List函数

use*_*928 1 haskell

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

例如:

  • head :获取第一个元素

  • last :获取最后一个元素

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

Wil*_*sem 9

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

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

向您了解更大的Haskell,这很好地说明了这一点:

在此处输入图片说明

head因而是该列表的第一元件,而tail是包含剩余的元素列表。

init采用除最后一个元素以外的所有元素,last从而采用最后一个元素。

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

链表[wiki]的常见命名法是

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

  • @ user2693928“ Head”是一个非常成熟的英语单词,例如事物的前端。 (5认同)
  • @ user2693928:好吧,这是关于链表的常用术语:https://www.cpp.edu/~ftang/courses/CS240/lectures/slist.htm (4认同)