Erlang在列表中插入元组

Erlang在列表中插入元组,erlang,tuples,Erlang,Tuples,下面是一个例子,我正在努力实现的目标: 案例一 >Fn = fun(X) -> {X, 3} end. >A = {{1,2}, {3, 4}, Fn(8)}. >{{1,2},{3,4},{8,3}} >Fn2 = fun(X) -> {X, 3},{7,5} end. >A1 = {{1,2}, {3, 4}, Fn2(8)}. >{{1,2},{3,4},{7,5}} >{{1,2},{3,4},{8, 3}, {7,5}} 这

下面是一个例子,我正在努力实现的目标:

案例一

>Fn = fun(X) -> {X, 3} end.
>A = {{1,2}, {3, 4}, Fn(8)}.
>{{1,2},{3,4},{8,3}}
>Fn2 = fun(X) -> {X, 3},{7,5} end. 
>A1 = {{1,2}, {3, 4}, Fn2(8)}.
>{{1,2},{3,4},{7,5}}
>{{1,2},{3,4},{8, 3}, {7,5}}
这很有效,但在多元组的情况下

案例二

>Fn = fun(X) -> {X, 3} end.
>A = {{1,2}, {3, 4}, Fn(8)}.
>{{1,2},{3,4},{8,3}}
>Fn2 = fun(X) -> {X, 3},{7,5} end. 
>A1 = {{1,2}, {3, 4}, Fn2(8)}.
>{{1,2},{3,4},{7,5}}
>{{1,2},{3,4},{8, 3}, {7,5}}
请向我推荐解决方案,以便我能在案例II中获得以下结果

>Fn = fun(X) -> {X, 3} end.
>A = {{1,2}, {3, 4}, Fn(8)}.
>{{1,2},{3,4},{8,3}}
>Fn2 = fun(X) -> {X, 3},{7,5} end. 
>A1 = {{1,2}, {3, 4}, Fn2(8)}.
>{{1,2},{3,4},{7,5}}
>{{1,2},{3,4},{8, 3}, {7,5}}

我认为您需要使用list([…])而不是tuple({…}):


我认为您需要使用list([…])而不是tuple({…}):


首先,为了解释在第二种情况下会发生什么:当您编写
Fn2=fun(X)->{X,3},{7,5}end
,它的意思是“给定
X
,创建并丢弃tuple
{X,3}
,然后返回tuple
{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}]

首先,为了解释在第二种情况下会发生什么:当您编写
Fn2=fun(X)->{X,3},{7,5}end
,它的意思是“给定
X
,创建并丢弃tuple
{X,3}
,然后返回tuple
{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}]

谢谢你的建议,我现在明白了。还有一个问题-我可以把
Fn2(8)
放在第一位、第二位或最后的具体位置上吗?谢谢你的建议,我现在明白了。还有一个问题-我可以把
Fn2(8)
放在第一位、第二位或末尾的特定位置上吗?谢谢回复!我可以把Fn3(8)放在第一、第二或最后的特定位置。谢谢回复!我可以把Fn3(8)放在第一或第二位置或末尾的特定位置上吗。