gpt4 book ai didi

erlang - erlang 在列表中是否有隐藏的 rownum?

转载 作者:行者123 更新时间:2023-12-04 23:38:42 28 4
gpt4 key购买 nike

这是我当前代码的示例:

DataSet = [1,2,3,4,5,6,7,8,9].

Sequence = [3,4,5,6].

ReducedDataSet = lists:foldl( fun(SeqNumber, Output) ->
Row = lists:nth(SeqNumber, DataSet),
[Row|Output]
end,
[],
Sequence
).

ReducedDataSet 最终为 [6,5,4,3],如果我将其更改为 list:foldr,ReducedDataSet 将是 [3,4,5,6]。

我没想到当从左到右吸收时,第 3 个值是 3,应该继续到 6,但是当从右到左吸收时,第 3 个值将是 7,然后继续到 4。

这是否意味着我的列表中有一个隐藏的行号,而 foldl 和 foldr 仅在最终列表的排序顺序上有所不同?

最佳答案

我觉得这是一个比较笼统的fold题。

通常, fold 执行以下操作: (new_element, acc) -> new_acc
如果操作new_element ° acc是可交换的(例如 sum ), foldl 和 foldr 是相同的。

如果操作是“追加”,则将元素追加到左侧或右侧是有区别的。
[3] ° 4 -> [3, 4] VS 4 ° [3] -> [4, 3]
我不记得哪个是 foldlfoldr但我认为左/右指的是累加器的位置( [3] ° 4foldl 与此定义)

关于erlang - erlang 在列表中是否有隐藏的 rownum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46171656/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com