繁体   English   中英

使用简写符号匿名函数将元组转换为列表

[英]Converting tuple to list using shorthand notation anonymous function

通过戴夫的(PragProg)Elixir书。 挑战是将一对元组转换为列表。

这有效

pair = fn {a,b} -> [a,b] end
pair.({1,2}) #=> [1,2]

现在我尝试使用速记符号(我觉得有些东西丢失但不知道它是什么......例如我怎么说我期待/发送一个元组)

如何使用简写表示法获得相同的结果?

pair = &([&1,&2]) 
pair.({1,2}) #=> BadArityError 

试过这个

pair = &{[&1,&2]} # but didn't work. I am missing something important

它不起作用,因为{a, b}是一个参数,所以它作为&1传递,没有&2

我能想到的一种方法是使用Tuple.to_list/1函数,所以它会是这样的:

pair = &Tuple.to_list/1
pair.({1,2}) #=> [1,2]

但如果这不是你想要的,那么你可以使用这样的东西:

pair = &([elem(&1, 0), elem(&1, 1)])
pair.({1,2}) #=> [1,2]

但这是一个简单的例子,它仅适用于2个元素元组,但它可以让你理解你做错了什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM