Erlang中的map函数

发布于 2024-10-12 12:52:57 字数 340 浏览 1 评论 0原文

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

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

包含成员的第一个参数,并将整个内容映射到列表上。

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

问题2:如何使用具有多个参数的地图(和类似功能)?自己滚?

谢谢。

In addition to having the map function available with many arities (up to 4), Prolog allows you (under certain circumstances) to map a multiple arity function onto a single list. Say you want to test whether 'x' is a member of multiple lists. You can do:

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

The first argument of member is included, and the whole thing is mapped onto the list.

Question 1: Is something similar available to Erlang? I can't find it in the documentation, but then again I can't find it in any Prolog documentation either.

Question 2: How to use map (and similar functions) with multiple arities? Roll your own?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拥有 2024-10-19 12:52:58

也许是这样的:

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

Maybe something like:

23> lists:map(fun(L) -> lists:member(42,L) end, [[1,5,8,4],[13,42],[7,2,10]]).
[false,true,false]
24>
沉溺在你眼里的海 2024-10-19 12:52:58

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]

There are lists:map/2 and also list comprehensions:

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]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文