Erlang异常错误 - 没有函数子句匹配列表:map - 我缺少什么?

时间:2011-09-26 03:00:23

标签: map erlang

我正在研究Euler 8.经过一番阅读后,我决定使用map函数为我解决问题。将一个简单的测试程序放在一起,以确保我理解这些概念。

从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})

我看到了乐趣,以及消息中的列表。 我在这里错过了什么概念?

2 个答案:

答案 0 :(得分:11)

你的List实际上是一个元组。 {}用于元组,[]用于列表。

你的例子应该是:

1> List = [3,1,4].
[3,1,4]
2> lists:map(fun(Z) -> Z*Z end, List).
[9,1,16]

答案 1 :(得分:4)

您正尝试在元组上应用lists:map函数。启动List = [3,1,4]而不是List = {3,1,4}并应用相同的功能,您将获得所需的输出。