对数字列表或元组,输出所有偶数乘以它在此列表或元组中的偶数位数 erlang实现
时间: 2024-02-25 15:51:53 浏览: 66
大数据挖掘分析与应用——列表和元组
以下是一个Erlang函数,可以接受一个数字列表或元组作为参数并输出所有偶数乘以它在此列表或元组中的偶数位数:
```
-module(mymodule).
-export([even_multiply/1]).
even_multiply(List) ->
EvenList = lists:filter(fun(X) -> X rem 2 == 0 end, List),
lists:foreach(fun(X) -> io:fwrite("~p ", [X * element(X, EvenList)]) end, lists:seq(2, 2, length(EvenList))).
```
该函数首先使用 `lists:filter/2` 函数从给定列表中提取所有偶数,然后使用 `lists:foreach/2` 函数遍历所有偶数位数并将其乘以对应的偶数输出。注意,元素索引从2开始,因为我们只考虑列表或元组中的偶数位数。
例如,如果我们调用 `mymodule:even_multiply([1, 2, 3, 4, 5, 6, 7, 8])` 函数,它将输出:4 24。因为 2乘以它在列表中的第二个位置上的元素4得到8,8乘以它在列表中的第四个位置上的元素8得到24。
阅读全文