代码之家  ›  专栏  ›  技术社区  ›  jtolle

对于接受列表并返回包含这些列表内容的单个列表的函数,是否有一个通用名称?

  •  0
  • jtolle  · 技术社区  · 15 年前

    编辑:我的问题最初是“是否有一个函数的标准名称可以扁平列表,但只有一个层次的深度?”但查克的回答和我想问的更接近,所以我重新命名了它。不过,这三个答案对我都很有用。谢谢。

    对于一个函数来说,“flatten”似乎是一个很好接受的名称,它取一棵树并构建一个原子列表,不管原子嵌套的深度有多深,但是对于一个只在一个级别后停止的函数呢?所以((12)((3 4)(5 6))(7 8))“某物”到(12(3 4)(5 6)7 8)。“something”是否在多个语言/库中具有通用名称?

    这个问题的答案是:

    Flattening a shallow list in Python

    建议“链”可能是一个很好的猜测,但是“标准”是否足够常见?

    4 回复  |  直到 15 年前
        1
  •  3
  •   Chuck    15 年前

    获取列表列表并返回包含这些列表内容的单个列表的函数在许多函数语言中称为“concat”(例如ocaml、f、haskell、clojure)。

        2
  •  5
  •   Apocalisp    15 年前

    用于 移除一组内支架 一个列表的列表, concat 很受欢迎。更一般的函数,用于展平 M 属于 单子的s ,通常称为 join .在抽象代数中,这个函数被标准地称为 µ .

        3
  •  2
  •   JaredPar    15 年前

    我不确定是否有这个标准名称。我可以用3个不同的名称命名3个不同的实现

    • 蟒蛇:链
    • F~(?):康塔特
    • Linq:选择多个
        4
  •  0
  •   Svante    15 年前

    在普通的lisp中,可以应用append,或者使用正确的类型参数连接。append的结果与参数列表共享子结构;concatenate始终是副本,也可以应用于非列表序列。