【发布时间】:2012-11-08 15:05:22
【问题描述】:
我想在 haskell 中编写一个无点函数,为了简单起见,假设我想做这个函数:
maxmin :: Ord a => a -> a -> a -> a
maxmin a b c = max a (min b c)
我可以改进一下
maxmin a b = (max a) . (min b)
但是有什么办法可以去掉 a 和 b?
【问题讨论】:
-
无点是一种代码风格,因此只有在提高可读性时才应使用;无点符号编译方式不同(因为内联)的情况通常不是您需要担心的(在分析之后考虑一下)。在您的情况下,我会说无点无济于事。例如,将
maxmin重命名为constrainTo将是一个更具表现力的更改。
标签: haskell pointfree dot-operator