Понимать ядро `Fn.const`
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
как параметр и всегда возвращает начальныйc
.Если я сделаюlet f = const 5
, f
станет функцией, которая принимает'_a
в качестве параметра. Какова цель возврата функции со слабым полиморфным параметром?постскриптум Я вижу, что несколько функций внутриFn
модуль у всех есть();
перед возвратом функции, что такое использование();
?