二郎神; cons运算符不会变平

时间:2016-02-10 17:22:35

标签: erlang

我写了这个函数:

$('.test').change(function() {
    localStorage.setItem(this.id, this.value);
}).val(function() {
    return localStorage.getItem(this.id)
});

使用rotate_bin_list_right([H|T]) -> erlang:display(H), erlang:display(T), erlang:display([T|H]), [T|H]. 调用时,会打印:

[<<"2">>,<<"3">>,<<"4">>,<<"2">>,<<"3">>,<<"4">>]

我期待着一个“扁平的名单”:

 <<"2">>
[<<"3">>,<<"4">>,<<"2">>,<<"3">>,<<"4">>]
[[<<"3">>,<<"4">>,<<"2">>,<<"3">>,<<"4">>]|<<"2">>]

发生了什么事?

2 个答案:

答案 0 :(得分:3)

T是一个列表,而H不是列表,因此构造[T|H]会创建一个improper list,其中尾部不是列表。

答案 1 :(得分:1)

为了完整起见,这是正确的实施:

R