【问题标题】:What does | and || mean in Erlang?是什么 |和 ||在 Erlang 中是什么意思?
【发布时间】:2020-06-09 01:26:27
【问题描述】:

我已经检查了 erlang 网站运营商等,但我找不到什么 ||和 |手段。

我在某处读到 ||表示“这样”,但只有一个“|”是什么意思?

【问题讨论】:

    标签: erlang operator-keyword


    【解决方案1】:

    | 是 "cons" 运算符:它将一个元素放在列表前面:

    1> [1 | [2,3]].
    [1,2,3]
    2> [[1, 2] | [3,4,5]].
    [[1,2],3,4,5]
    

    || 用于列表理解。在最简单的形式中,它可以用作map 的简写:

    3> [2 * X || X <- [1,2,3]].
    [2,4,6]
    

    但是当你想编写多个生成器来创建笛卡尔积时,它会变得更加方便:

    4> [{X, Y} || X <- [1,2,3], Y <- [4, 5, 6]].
    [{1,4},{1,5},{1,6},{2,4},{2,5},{2,6},{3,4},{3,5},{3,6}]
    

    你也可以一路上filter。比较:

    5> [X+Y || X <- [1,2,3], Y <- [4,5,6]].
    [5,6,7,6,7,8,7,8,9]
    

    到:

    6> [X+Y || X <- [1,2,3], Y <- [4,5,6], X+Y > 6].
    [7,7,8,7,8,9]
    

    | 运算符是必不可少的,因为它是您从现有的头元素和列表的尾部构造新列表的规范方式。同样的符号也适用于模式匹配,也就是说,它也是你解构列表的方式。

    另一方面,列表推导式主要是语法糖:它们可以使用常规函数应用程序编写,因此不是语言的基础。但它们可以通过消除句法噪音、直接在语言中模仿数学符号等集合理解来显着提高可读性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 2017-06-11
      • 2018-03-05
      • 2023-03-27
      相关资源
      最近更新 更多