【问题标题】:What is the term for the first N elements of a list?列表的前 N ​​个元素的术语是什么?
【发布时间】:2016-04-08 17:07:25
【问题描述】:

列表的第一个元素称为头,列表的其余部分称为尾。但是,由列表的前 N ​​个元素组成的子列表的术语是什么?在第 N 个元素之后的列表的其余部分的名称是什么?

【问题讨论】:

  • 真的吗?我认为列表的第一个元素称为汽车,其余的称为 cdr,第 N 个元素之后的列表称为 nthcdr。
  • @DourHighArch 喜欢 lisps 命名事物的方式。我的意思是,头和尾?来吧,这是什么,解剖课?除了笑话,nthcdr 是问题第二部分的有效答案。
  • 你可以称之为长度为n的前缀
  • 并非所有概念都已建立名称,但 takedrop 的 Haskell 文档称这些为“前缀”和“后缀”。
  • @DourHighArch 当您知道您正在使用list*firstrest 而不是conscarcdr 进行列表处理时,会使代码更清晰.当谈到表示一对的两个部分时,carcdr 似乎是最好的名字,因为我没有看到任何更好的主意。

标签: list functional-programming terminology


【解决方案1】:

实际上,在相当大的链表实现子集中,尾部实际上是最后一个元素,而不是没有头部的列表:-)

由于对于您应该如何称呼初始子集似乎几乎没有共识(两年后),您可以随意命名,只要清楚即可,例如:

  • 大小为 N 的初始子集;
  • 前 N 个元素;
  • 初始-N.

我实际上将列表中的 rest 称为余数,因为您几乎总是会在您正在讨论的内容中使用它。

因此,例如,除了头部之外,头部具有余数,而大小为N 的初始子集具有列表的余数减去那些N 元素。

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 2020-11-09
    • 2021-08-05
    • 2014-12-20
    • 2021-06-26
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多