为什么我不能在 Erlang 的列表中重写?

Why can I not rewrite in a list in Erlang?

我有一个列表L = [1,2,3].

我在 L 上执行以下操作:

lists:sublist(L,2) ++ [10] ++ lists:nthtail(3,L).

我不想将结果存储在新列表中,而是想将结果存储在 L 本身中。但是,当我这样做时,出现了明显的错误:** exception error: no match of right hand side value [1,2,300]

我不想使用新变量,我想在 L 本身中重写。可能吗?

不,Erlang 有 single assignment. To use an example from Armstrong,在 C 中这有效:

x = 5;
x = x + 10;

但在 Erlang 中是这样写的:

X = 5;
X1 = X + 10;