【发布时间】:2019-06-07 10:17:54
【问题描述】:
作为 OCaml 的初学者,我正在尝试编写一个函数,该函数接受两个 int 参数(a 和 b),并应返回一个包含所有元组 (i,j) 的列表,其中 i 介于 0 和 a 之间, j 介于 0 和 b 之间,顺序无关紧要。 函数应该是这样的: myfunc: int -> int -> (int*int) list 结果必须类似于 [(0,1);(0,2)]...
我已经编写了一个函数,它接受两个 int 参数并返回这两个参数之间的列表。例如,1 和 5 给了我这个列表:[1;2;3;4;5]。 这就是我所做的:
let rec btwn = fun a b -> if a>b then []
else if a = b then [a]
else a :: btwn (a+1) b ;;
我的想法是重用这个函数,并创建两个列表:一个范围为 0 的列表; a 和彼此的范围为 0 ; b,然后用这两个列表创建所有元组。 我听说过 List.fold_left/right,List.map 但我无法让它工作...... 你有什么想法 ?谢谢!
【问题讨论】: