Я думаю, что аргумент, который автор имеет в своей голове, был дико сокращен до такой степени, что он даже не имеет смысла. Но вот мое предположение о рассуждениях. Начнем с первого определения:
flip f = g where g x y = f y x
Теперь мы видим, что это карри, и мы используем все обсуждение ассоциативности (->)
и мусора, чтобы написать то же самое, но с двумя дополнительными аргументами для f
. Как это:
flip f <b>x y</b> = g <b>x y</b> where g x y = f y x
Теперь у нас есть уравнение, которое он назвал следующим образом: g x y = f y x
и наоборот. Мы можем переписать тело flip
, используя это уравнение, например:
flip f x y = <b>f y x</b> where g x y = f y x
Поскольку в теле определения больше не упоминается g
, мы можем удалить его.
flip f x y = f y x
И теперь мы в значительной степени там. В окончательном определении автор поменял местами имена x
и y
. Я не знаю, почему они решили сделать это, но это законный шаг, который вы можете предпринять в эквалайзере, так что никаких проблем нет. Это дает нам их окончательное уравнение:
flip f y x = f x y