【发布时间】:2010-11-14 10:39:39
【问题描述】:
有人可以提出更好和/或更优雅的实现吗:
让每个 xs = 让 rec each' acc 左右 = 与 | [] -> ACC |右 -> 让 new_left = 左 @ [List.hd 右] 让下一个 = List.tl 对 let result = (List.hd right), left @ next each' (result::acc) new_left next 每个' [] [] xs这样做:
> 每个 [1..3];; 验证它: (int * int list) list = [(3, [1; 2]); (2, [1; 3]); (1, [2; 3])]这个函数也可以反向返回结果。这个想法是将所有元素作为包含一个元素和其余元素列表的元组。
【问题讨论】:
标签: list f# functional-programming simplify