Erlang 在列表中插入元组
Erlang Insert tuples in a list
这是一个示例,我正在努力实现的目标:
案例一
>Fn = fun(X) -> {X, 3} end.
>A = {{1,2}, {3, 4}, Fn(8)}.
>{{1,2},{3,4},{8,3}}
这在多个元组的情况下非常有效well.But
案例二
>Fn2 = fun(X) -> {X, 3},{7,5} end.
>A1 = {{1,2}, {3, 4}, Fn2(8)}.
>{{1,2},{3,4},{7,5}}
请给我建议解决方案,以便我可以为 CASE II
实现以下结果
>{{1,2},{3,4},{8, 3}, {7,5}}
我认为您需要使用列表 ([ ... ]) 而不是元组 ({ ... }):
> Fn3 = fun(X) -> [{X, 3},{7,5}] end.
> [{1,2}, {3, 4}| Fn3(8)].
[{1,2},{3,4},{8,3},{7,5}]
首先,解释第二种情况发生的情况:当你写Fn2 = fun(X) -> {X, 3},{7,5} end
时,它的意思是“给定X
,创建并丢弃元组{X, 3}
,然后return元组{7, 5}
.
您似乎也混淆了元组和列表。元组不是这样使用的;它们用于固定大小的结构。如果你真的想得到一个列表,很简单:
> Fn2 = fun(X) -> [{X, 3},{7,5}] end.
> A1 = [{1,2}, {3, 4}] ++ Fn2(8).
[{1,2},{3,4},{8,3},{7,5}]
> A2 = [{1,2}] ++ Fn2(8) ++ [{3, 4}].
[{1,2},{8,3},{7,5},{3,4}]
> A3 = Fn2(8) ++ [{1,2}, {3, 4}].
[{8,3},{7,5},{1,2},{3,4}]
这是一个示例,我正在努力实现的目标:
案例一
>Fn = fun(X) -> {X, 3} end.
>A = {{1,2}, {3, 4}, Fn(8)}.
>{{1,2},{3,4},{8,3}}
这在多个元组的情况下非常有效well.But
案例二
>Fn2 = fun(X) -> {X, 3},{7,5} end.
>A1 = {{1,2}, {3, 4}, Fn2(8)}.
>{{1,2},{3,4},{7,5}}
请给我建议解决方案,以便我可以为 CASE II
实现以下结果>{{1,2},{3,4},{8, 3}, {7,5}}
我认为您需要使用列表 ([ ... ]) 而不是元组 ({ ... }):
> Fn3 = fun(X) -> [{X, 3},{7,5}] end.
> [{1,2}, {3, 4}| Fn3(8)].
[{1,2},{3,4},{8,3},{7,5}]
首先,解释第二种情况发生的情况:当你写Fn2 = fun(X) -> {X, 3},{7,5} end
时,它的意思是“给定X
,创建并丢弃元组{X, 3}
,然后return元组{7, 5}
.
您似乎也混淆了元组和列表。元组不是这样使用的;它们用于固定大小的结构。如果你真的想得到一个列表,很简单:
> Fn2 = fun(X) -> [{X, 3},{7,5}] end.
> A1 = [{1,2}, {3, 4}] ++ Fn2(8).
[{1,2},{3,4},{8,3},{7,5}]
> A2 = [{1,2}] ++ Fn2(8) ++ [{3, 4}].
[{1,2},{8,3},{7,5},{3,4}]
> A3 = Fn2(8) ++ [{1,2}, {3, 4}].
[{8,3},{7,5},{1,2},{3,4}]