是否可以写一个更快的等效函数?
prepend(X, Tuple) ->
list_to_tuple([X | tuple_to_list(Tuple)]).
答案 0 :(得分:9)
答案 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中。