意味のある記法で:
absoluteError x y = abs (x-y)
ポイントフリー表記の不明確な例:
absoluteError' = curry (abs . uncurry (-))
小さなステップで、自分で導出する方法は次のとおりです。
absoluteError x y = abs (x-y) = abs ((-) x y) = abs ( ((-) x) y)
= (abs . (-) x) y = ( (abs .) ((-) x) ) y =
= ( (abs .) . (-) ) x y
したがって、eta-reductionによって、f x y = g x y
結論を下すとf = g
.
さらに、_B = (.)
ちょっと使って、
(abs .) . (-) = _B (abs .) (-) = _B (_B abs) (-) = (_B . _B) abs (-)
= ((.) . (.)) abs (-)
ここにいくつかの方法があります。
absoluteError = (abs .) . (-)
absoluteError = ((.) . (.)) abs (-)
おっぱいオペレーターにもっと政治的に正しい名前を付けてください(そして一体、同時にそれを一般化してください)
(.:) = fmap fmap fmap
absoluteError = abs .: (-)
result :: (o1 -> o2) -> (i -> o1) -> (i -> o2)
result = (.)
absoluteError = (result . result) abs (-)
もちろん、これらはすべて同じトリックですが、名前が異なります。楽しみ!