Проще было бы устроить раскрой брюк! (((f.).g) x) y = (f.) (g x) y = (f.(g x)) y = f (g x y) (((.f).g) x) y = (.f) (g x) y = ((g x).f) y = (g x) (f y) ((f.(g.)) x) y = f (g.x) y ((f.(.g)) x) y = f (x.g) y
Мне кажется, что можно пойти с другой стороны: 1) перечислить все формулы из 4 термов, из которых 2 связаны - и найти point-free записи для них 2) выучить самые расхожие формулы 3) в качестве образца расхожести можно взять вилки-ложки-крючочки из J
f g x y = (f g) x y f g (x y) = ((f g).x) y = ((f g).) x y f (g x) y = (f.g) x y f (g x y) = (f.(g x)) y = ((f.).g) x y f (g (x y)) = (f.(g.x)) y = ((f.).(g.)) x y
f x g y = (f x $ g) y = ($g) (f x) y = (($g).f) x y f x (g y) = (f x . g) y = ((.g).f) x y f (x g) y = f (x $ g) y = (f.($g)) x y f (x g y) = ((f.)(x $ g)) y = ((f.).($g)) x y f (x (g y)) = (f.x.g) y = ((f.).(.g)) x y
и т.д. Очень несложно наловчиться - и рожать point-free с сечениями, и восстанавливать.
no subject
Date: 2009-10-16 05:14 pm (UTC)(((f.).g) x) y = (f.) (g x) y = (f.(g x)) y = f (g x y)
(((.f).g) x) y = (.f) (g x) y = ((g x).f) y = (g x) (f y)
((f.(g.)) x) y = f (g.x) y
((f.(.g)) x) y = f (x.g) y
Мне кажется, что можно пойти с другой стороны:
1) перечислить все формулы из 4 термов, из которых 2 связаны - и найти point-free записи для них
2) выучить самые расхожие формулы
3) в качестве образца расхожести можно взять вилки-ложки-крючочки из J
f g x y = (f g) x y
f g (x y) = ((f g).x) y = ((f g).) x y
f (g x) y = (f.g) x y
f (g x y) = (f.(g x)) y = ((f.).g) x y
f (g (x y)) = (f.(g.x)) y = ((f.).(g.)) x y
f x g y = (f x $ g) y = ($g) (f x) y = (($g).f) x y
f x (g y) = (f x . g) y = ((.g).f) x y
f (x g) y = f (x $ g) y = (f.($g)) x y
f (x g y) = ((f.)(x $ g)) y = ((f.).($g)) x y
f (x (g y)) = (f.x.g) y = ((f.).(.g)) x y
и т.д.
Очень несложно наловчиться - и рожать point-free с сечениями, и восстанавливать.