如何选择列表中的第一个元组并将其余的元组保存在Erlang中?

时间:2014-02-13 10:11:41

标签: erlang

我希望能够输入以下内容:

fun([{X,Y}, {A,B}, {M,N}]).

并且仅使用第一个元组并保存其他元组以供以后使用。我试着像这样定义它:

fun([{X|Y}, V]) ->
V.

但我只是在“|”之前得到语法错误。 “V”只是试图输出以查看发生了什么。

是否有任何资源可以指向我的一些支持?或者我做错了什么?

2 个答案:

答案 0 :(得分:3)

func([{X,Y}| V]) -> %% fun is a keyword, you cannot use it as a function name
   %% do some stuff with X, Y
   V.

通常,如果要将相同的函数应用于列表的所有元素,最好使用lists模块:( lists:foreach / 2,lists:map / 2,lists:foldl / 2 ... )或列表理解

Res = [Fun(T) || T <- L]

wher Fun是从列表L

应用于每个元组T的函数

答案 1 :(得分:0)

你应该这样写: fun([{X, Y} | V])

[{X, Y} | V] = [{X,Y}, {A,B}, {M,N}],然后是V = [{A,B}, {M,N}]