从列表中删除最后一个元素 Erlang

6
我需要删除列表中的最后一个元素。我在shell中运行了这段代码。
erl +pc unicode
Erlang R16B03 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:10] [kernel-poll:false]

ColumnListWithCommas = [<<"username">>,<<",">>,<<"password">>,<<",">>,
<<"created_at">>,<<",">>,<<"id">>,<<",">>,<<"email_hash">>,
<<",">>,<<"status">>,<<",">>,<<"mess_count">>,<<",">>].
  
lists:droplast(ColumnListWithCommas).
** exception error: undefined function lists:droplast/1
1个回答

8

Erlang R16B03中没有lists:droplast/1函数,需要使用Erlang 17.0版本。

可以执行以下操作:

1> A = [1, 2, 3, 4].
2> lists:reverse(tl(lists:reverse(A))).
[1,2,3]

Or

3> {L, _} = lists:split(length(A) - 1, A).

还有一种方法。 你可以从Erlang源代码中获取实现,这是相当简单的。


在Erlang 16B03中有没有删除元素的方法? - max
1
lists:reverse(tl(lists:reverse([1, 2, 3, 4]))) 的例子。 - couchemar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接