if I do
match (fun i -> i + 1) with
(fun i -> i + 1) -> true;;
结果被拒绝了。
为什么 OCaml 不允许函数匹配?
Ocaml(如 Haskell)基于 Lambda 演算。
一般来说,比较两个函数是不可判定的:如果你可以比较两个函数,那么你就可以判断一个函数是否终止。但是,如果你的语言是图灵完备的,你就不能。
我们使用的所有通用语言都是图灵完备的:它们能够计算任何东西。
所以,也许在某些情况下是可能的,但在一般语言中是不可能的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)