有哪些潜在的替代表示方法(例如使用箭头、镜头、Haskell惯用语、do语法)可以使无参考表达式更容易读懂,看起来更像英语?
下面是一个简单的例子:
qNameIs :: String -> QName -> Bool
qNameIs = (. qName) . (==)
QName
是来自于 Text.Xml
的一条记录。
有哪些可能等价于 qNameIs
但不是 pointful expressions 的表达式呢?理想情况下,这些表达式应该能够显示第一个参数将被传递给 (==)
并且结果将被计算,而该结果应用于这个表达式的第二个参数作为 qName
的结果。
>>>
代替.
,因为从左到右的顺序似乎更自然 - 我猜这是因为它遵循了我们在英语中习惯的顺序,并且这是我们在其他语言中创建管道的典型方式。 - Mark H(==) <*> qName
。 - Will Ness