gpt4 book ai didi

list - 从 OCaml 中的列表中返回元素列表

转载 作者:行者123 更新时间:2023-12-04 10:28:11 26 4
gpt4 key购买 nike

我是 OCaml 的新手,我现在正在尝试实现一个函数,该函数返回给定列表的元素列表 x在列表中的索引处 y .

例如,该函数应该执行以下计算:[5,6,7,8], [0, 3] => [5, 8]
我不确定如何在 ML 中存储临时变量,也不清楚它是如何工作的。不过,我确实知道如何从给定指定索引的列表中查找元素。

任何想法都会受到赞赏,但我想使用递归函数并避免 List模块。

最佳答案

不需要临时变量,只需使用递归!

# let rec indices xs = function
| i :: is -> (List.nth xs i) :: indices xs is
| [] -> []
;;
val indices : 'a list -> int list -> 'a list = <fun>

# indices [5;6;7;8] [0;3] ;;
- int list = [5; 8]

它通过遍历提供的每个索引来构建列表,然后将其添加到下一步返回的列表中。

希望这也被优化为尾递归形式,但我对此不太确定。您可能希望将其更改为适当的尾递归,但我将由您决定。

关于list - 从 OCaml 中的列表中返回元素列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9798282/

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