有人可以解释如何理解这个符号:
((a, b) → a) → a → [b] → a
((a, b) → a) → a → [b] → a
^^^^^^^^^^^^ ^ ^^^ ^
1 2 3 4
这是一个接受三个参数 (1) (2) (3) 并返回类型a
(4) 的值的函数:
a
b
reduce( (acc, x) => acc + x.length, 0, ["foo", "bar", "baz"]); //=> 9
// ^^^ ^ ^^^^^^^^^^^^^^ ^ ^^^^^^^^^^^^^^^^^^^^^ ^
// a b a a [b] a
// ((a -> b) -> a ) -> a -> [b] -> a
在这种情况下a
代表number
类型并b
代表string
类型。
我相信它的 Hindley-Milner 符号:https ://drbolean.gitbooks.io/mostly-adequate-guide-old/content/ch7.html