如何在Elixir中逐元素传递列表作为函数元素的参数?

时间:2020-03-19 19:13:41

标签: list function enums arguments elixir

我有一个函数(lex_raw_tokens),该函数接收2个参数。另一个函数有2个元素列表,我需要将它们作为参数传递给另一个函数,但要逐个传递。

在原始代码中,该函数仅接收1个参数,而我使用Enum.flat_map(sal, &lex_raw_tokens/1)对其进行了调用,而sal是我要传递的列表。这行得通,但后来我不得不将lex_raw_tokens更改为接收2个参数,而不是1个。

我尝试使用Enum.flat_map(sal, &lex_raw_tokens(&1, line))解决问题,尽管在技术上可行,但行作为整个列表而不是单个元素传递。

我对Elixir还是很陌生,我还没有找到任何其他功能可以代替flat_map来实现我想要的功能,而且我还没有找到使用flat_map的方法。

我还应该提到,我传递的列表的长度是可变的,因此我无法以暴力方式解决此问题。另外,两个列表的长度相同并且具有关联,因此我需要将sal的第一个元素与line的第一个元素一起使用,将第二个元素与第二个元素一起使用,依此类推。

1 个答案:

答案 0 :(得分:1)

Enum.zip/2是您的朋友在这里。

<p>