我已閱讀了所有有關F#中的值限制的內容,但我仍不明白。我有以下代碼:F#值限制
type tree<'a> =
| Nil
| Node of (tree<'a> * 'a * tree<'a>)
let rec flatten = function
| Nil -> []
| Node (Nil, b, Nil) -> [b]
| Node (l, h, p) -> List.concat [(flatten l);[h];(flatten p)]
和編譯器顯示錯誤:
error FS0030: Value restriction. The value 'it' has been inferred to have generic type
val it : '_a list
Either define 'it' as a simple data term, make it a function with explicit arguments or, if you do not intend for it to be generic, add a type annotation.
誰能幫助我?非常感謝;)
你能提供代碼調用flatten?我可以編譯並運行這個示例就好了 – JaredPar 2010-11-01 19:10:27
但是當我打電話弄扁Nill ;;有一個問題。 – 877 2010-11-01 20:01:35