f#类型信息



这个简单的函数

let s =
    function
    | [] -> [[]]
    | list -> []::list

具有类型('a List List -> 'a List List)。因此,由于'a是泛型的,它接受任意深度的列表作为参数。我的问题是,我总是必须指定输入列表的深度,否则f#交互将会抱怨。例如

s []

不能工作

s ([]: int List List)

。类似地,

s [[[]]]

不能工作,但是

s ([[[]]]:int List List List)

。那么,这只是一个例子,有没有什么方法可以避免这种显式类型呢?

谢谢

问题在这里。

是什么类型?
s [[[]]]

't list list。由于一些潜在的。net限制,这样的值不能存在。你需要使't成为混凝土。

有许多关于f#值限制的优秀教程,最好的解决方案是稍后在同一文件中使用您的结果,或者提供一些其他方法来进行推断,以提供具体类型。

相关内容

  • 没有找到相关文章

最新更新