【发布时间】:2020-03-20 03:25:52
【问题描述】:
我有一个接收 2 个参数的函数 (lex_raw_tokens)。另一个函数有 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)) 解决问题,虽然这在技术上有效,但 line 作为整个列表而不是单个元素传递。
我对 Elixir 还是很陌生,我还没有找到任何其他功能来替换 flat_map 来满足我的需求,我还没有找到像这样使用 flat_map 的方法。
我还应该提到,我传递的列表具有可变长度,所以我不能蛮力解决这个问题。此外,两个列表的长度相同并且有关系,所以我需要将sal 的第一个元素与line 的第一个元素一起使用,第二个与第二个元素一起使用,依此类推。
【问题讨论】:
标签: list function enums arguments elixir