这个简单的功能
let s =
function
| [] -> [[]]
| list -> []::list
具有类型('a List List -> 'a List List)。因此,由于 'a 是通用的,它接受任意深度的列表作为参数。我的问题是我总是必须指定输入列表的深度,否则 F# 交互会抱怨。例如
s []
将无法工作
s ([]: int List List)
将要。相似地,
s [[[]]]
不会工作,但
s ([[[]]]:int List List List)
做。那么,这只是一个例子,有什么方法可以避免这种显式输入?
谢谢