小编Hav*_*ung的帖子

为什么不能像 OCaml 中的常规函数​​一样传递数据构造函数?

例如,考虑以下代码:

type foo = Foo of int

let apply z f = f z

(* This is not allowed *)
let create_foo = Foo

(* This is allowed *)
let create_foo i = Foo i

(* This is not allowed *)
apply 1 Foo

(* This is allowed *)
apply 1 create_foo
Run Code Online (Sandbox Code Playgroud)

数据构造函数是必须完全应用的特殊功能吗?当作为功能使用,Foocreate_foo在他们所做的事情是相同的。禁止将其Foo用作可以传递和部分应用的常规函数​​的原因是什么?

Haskell 似乎允许这种行为。

ocaml function

4
推荐指数
1
解决办法
117
查看次数

标签 统计

function ×1

ocaml ×1