Erlang:将元素“预先”添加到元组中

时间:2010-10-14 19:02:26

标签: erlang

是否可以写一个更快的等效函数?

prepend(X, Tuple) ->
  list_to_tuple([X | tuple_to_list(Tuple)]).

3 个答案:

答案 0 :(得分:9)

在我看来,这种事情是灰心丧气的。如果您想要一个列表,请使用一个。

Getting Started with Erlang

元组中包含固定数量的东西。

答案 1 :(得分:6)

如果你的元组长度有限,你可以这样做:

prepend(X, {}) -> {X};
prepend(X, {A}) -> {X, A};
prepend(X, {A, B}) -> {X, A, B};
prepend(X, {A, B, C}) -> {X, A, B, C}.

您可以根据需要继续使用此模式。

答案 2 :(得分:4)

由于前置元素与在位置1插入元素相同,您可以使用内置函数erlang:insert_element/3

> erlang:insert_element(1, {a, b}, z).
{z,a,b}

此功能已添加到Erlang / OTP R16A中。