Jane Street 的 Core lib 有这样一个功能:Fn.const
.
https://github.com/janestreet/core_kernel/blob/master/lib/fn.ml
let const c = (); fun _ -> c
val const : 'a -> 'b -> 'a
产生一个只返回其第一个参数的函数
我真的不明白。
- 这个函数的目的是什么?在什么场景下我们必须使用它?
- 为什么要
();
放在第一位? - 为什么不写成
let const c = fun () -> c
? 这将给出一个unit
作为参数的函数并始终返回 initialc
。 - 如果我这样做
let f = const 5
,f
将成为一个以'_a
参数为参数的函数。返回具有弱多态参数的函数的目的是什么?
ps 我看到Fn
module里面的几个函数都();
在返回一个函数之前,有什么用();
?