首先,是否存在以下簽名(我個人認爲它可能有錯誤),如果是這樣,您能給我一個匹配代碼的例子:OCaml簽名的未知功能
val f : 'a -> ('a -> 'a) -> 'b -> ('a -> ('a -> 'a) -> 'b) -> bool = <fun>
首先,是否存在以下簽名(我個人認爲它可能有錯誤),如果是這樣,您能給我一個匹配代碼的例子:OCaml簽名的未知功能
val f : 'a -> ('a -> 'a) -> 'b -> ('a -> ('a -> 'a) -> 'b) -> bool = <fun>
下面是這兩個作爲例子:
let f a aa b a_aa_b = (aa a, a_aa_b a aa) = (a,b) (* forced by type inference *)
let f (a:'a) (aa: 'a -> 'a) (b: 'b) (c: 'a -> ('a -> 'a) -> 'b) = true (* explicitly stated *)
我不記得我以前見過這個簽名,所以我不知道哪些功能可能有它背後隱藏。
你認爲即使'val f:'a - >'a'存在,而不是'let f x = x'? –
據我所知,它是唯一的總數(此外,唯一有用的)這種類型的函數。有關更多信息,請參閱http://stackoverflow.com/questions/3945011/ocaml-is-there-a-function-with-type-a-a-other-than-the-identity-function。 – phimuemue
是的,你可以寫這樣的功能。你能給我們更多的背景嗎?如果是作業,我們不應該給你一個直接的答案。 – camlspotter
這個問題是相當扭曲的 –