Functional programming Ord在Ramda';s类型注释?

Functional programming Ord在Ramda';s类型注释?,functional-programming,ramda.js,Functional Programming,Ramda.js,拉姆达州: 夹紧 Ord a=>a→ A.→ A.→ a 将数字限制在某个范围内 也适用于其他有序类型,如字符串和日期 R.clamp(1, 10, -1) // => 1 R.clamp(1, 10, 11) // => 10 R.clamp(1, 10, 4) // => 4 我明白什么是“a”→ A.→ A.→ “a”表示(一个curried函数,它接受三个相同类型的参数,并返回一个相同类型的结果作为参数) “Ord”和胖箭头(=>)是什么意思?Ord是一种有序数据类

拉姆达州:

夹紧 Ord a=>a→ A.→ A.→ a

将数字限制在某个范围内

也适用于其他有序类型,如字符串和日期

R.clamp(1, 10, -1) // => 1
R.clamp(1, 10, 11) // => 10
R.clamp(1, 10, 4)  // => 4
我明白什么是“a”→ A.→ A.→ “a”表示(一个curried函数,它接受三个相同类型的参数,并返回一个相同类型的结果作为参数)


“Ord”和胖箭头(=>)是什么意思?

Ord
是一种有序数据类型。粗箭头表示参数的先决条件。在这种情况下,我认为这意味着数据类型被限制为像
这样的类型是有意义的(在强类型语言中,对于任何其他类型,您都会得到编译时错误)。

Jared的答案很好。这只是从拉姆达方面增加了一点视角

Ramda在其类型注释上有一个注释(免责声明:是我写的)


胖箭头表示左侧的短语约束右侧的描述
Ord
表示该类型已排序,即它可以与
一起正常工作。这包括内置类型,如字符串、数字和日期,以及具有提供正确排序的
valueOf
方法的用户类型

@JaredSmith谢谢。那胖箭呢?在前面的时候,把它作为一个答案贴出来,并加上那个部分。谢谢你的解释!虽然我觉得在文档中
->
表示为
,但胖箭头
=>
不表示为
;是的,我们可能应该解决这个问题。“我认为这意味着必须按照逻辑顺序提供参数”听起来不对
Ord a
约束
a
,但不说明参数顺序。