为什么我不能在 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;
我有一个列表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;