Erlang 异常错误 - 没有与列表匹配的函数子句:映射 - 我缺少什么?
我正在研究 Euler 8。经过一番阅读后,我决定使用 map 函数可以解决我的问题。将一个简单的测试程序放在一起以确保我理解这些概念是不够的。
来自壳内。
1> List = {3, 1, 4}.
{3,1,4}
2> io:format("oh my ~w ~n", [List]).
oh my {3,1,4}
ok
3> lists:map(fun (Z) -> Z * Z end , List).
** exception error: no function clause matching
lists:map(#Fun<erl_eval.6.80247286>,{3,1,4})
我看到了乐趣,以及消息中的列表。 我在这里缺少什么概念?
I am working on Euler 8. After a bit of reading i decided that use of the map function would solve a problem for me. Throwing a simple test program together to make sure I understood the concepts came up short.
From within the shell.
1> List = {3, 1, 4}.
{3,1,4}
2> io:format("oh my ~w ~n", [List]).
oh my {3,1,4}
ok
3> lists:map(fun (Z) -> Z * Z end , List).
** exception error: no function clause matching
lists:map(#Fun<erl_eval.6.80247286>,{3,1,4})
I see the fun, and the list in the message.
What concept am I missing here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的列表实际上是一个元组。 {} 用于元组,[] 用于列表。
你的例子应该是:
your List is actually a tuple. {} is for tuples, [] is for lists.
your example should be:
您正在尝试在元组上应用
lists:map
函数。启动List = [3,1,4]
而不是List = {3,1,4}
并应用相同的函数,您将获得所需的输出。You are trying to apply
lists:map
function on tuple. InitiateList = [3,1,4]
not asList = {3,1,4}
and apply the same function, you will get desired output.