【问题标题】:map function in ErlangErlang中的映射函数
【发布时间】:2011-06-10 22:53:14
【问题描述】:

除了具有许多arity(最多4个)的map函数之外,Prolog还允许您(在某些情况下)将多个arity函数映射到一个列表中。假设您要测试“x”是否是多个列表的成员。你可以这样做:

maplist(member(x),[[a,b,c,x],[3,f,s,x]]).

包含member的第一个参数,整个东西都映射到列表上。

问题 1: Erlang 有类似的功能吗?我在文档中找不到它,但是我在任何 Prolog 文档中也找不到它。

问题 2: 如何将 map(和类似函数)与多个 arities 一起使用?自己动手?

谢谢。

【问题讨论】:

    标签: list lambda functional-programming erlang prolog


    【解决方案1】:

    lists:map/2 和列表推导:

    1> lists:map(fun(L) -> lists:member(42,L) end, [[1,5,8,4],[13,42],[7,2,10]]).
    [false,true,false]
    2> [ lists:member(42,L) || L <- [[1,5,8,4],[13,42],[7,2,10]] ].
    [false,true,false]
    

    【讨论】:

      【解决方案2】:

      可能是这样的:

      23> lists:map(fun(L) -> lists:member(42,L) end, [[1,5,8,4],[13,42],[7,2,10]]).
      [false,true,false]
      24>
      

      【讨论】:

        猜你喜欢
        • 2012-07-26
        • 2017-11-22
        • 2015-07-25
        • 2011-08-04
        • 1970-01-01
        • 2016-04-20
        • 2010-11-02
        • 2020-03-17
        • 1970-01-01
        相关资源
        最近更新 更多