我希望对你们这些人来说这很容易。 我在这个论坛找到了这个解决方案:
let rec transpose list = match list with
| [] -> []
| [] :: xss -> transpose xss
| (x::xs) :: xss ->
(x :: List.map List.hd xss) :: transpose (xs :: List.map List.tl xss)
这是列表列表的转置,效果很好。
现在我需要相同的这个,但不是转换一个'列表列表到'列表列表将int list list转换为int list list。
谢谢大家!
答案 0 :(得分:5)
这就是多态性的含义。类型'a
可以是任何类型,因此您找到的解决方案与int list list
的工作方式相同。
如果你真的想要一个类型为int list list -> int list list
的函数,你总是可以使用类型注释强制它:
let int_transpose : int list list -> int list list = transpose
但我不明白你为什么会这样做。