Я должен решить проблему лямбда-исчисления. Я достиг определенной точки, и я не знаю, как продолжить:
h f x = \g -> g (f x g)
(h::a1 f::a2 x::a3)::a4 = (\g -> g::a5 (f::a2 x::a3 g::a5)::a6)::a4
a1 = a2 -> a3 -> a4
a2 = a3 -> a5 -> a6
a5 = a6 -> a4
a1 = (a3 -> a5 -> a4) -> a3 -> a4
a1 = (a3 -> (a6->a4) -> a4) -> a3 -> a4
есть ли способ отделки ?. Я использую «a1, a2, a3 ...» для представления типа элемента или функции. Например, 1 :: Int, 2.4 :: Float, f :: a1, x :: a3 и так далее. Я не знаю, достаточно ли это ясно ...
Спасибо большое !!