假设您想要在Haskell中编写一些有状态函数。你必须像这样使用一元风格:(使用任何状态单元) f :: x -> k -> (ST s) r 这意味着函数本质上接受了一些输入x和k,可以使用和/或修改世界来计算返回值r。假设k只是一个简单的键类型,例如用于访问x中的内容。k本身稍后将被分配一个简单的number类型,但我们不想现在就决定它的类型。 所以从本质上讲,我知道x是一个可变的东西,而k是不可变的。问题是只看f的签名,我们不能判断,所以如果
Ramda在R.equals中提供了区分大小写的等号,但是我想要一个不区分大小写的等式测试。Ramda也提供了R.compose,但是在Ramda组合中,它假设最左边的参数是一元的。类型喜欢我想要的是类似Haskell的,它被定义为
on b u x y对将一元函数u应用于两个参数x和y的结果运行二进制函数b。