Предположим, у меня есть две функции: f:X->Y
и g:Y*Y->Z
. Я хочу сделать третью функцию, h(a, b) = g(f(a), f(b))
.цепные многопараметрические функции
h a b = g (f a) (f b)
Есть ли способ, чтобы написать ее как h(a, b) = g*f (a, b)
?
А что, если h(a,b,c,d) = g2*g1*f2*f1 (a,b,c,d)
, где g_i
занимает 2 аргумента?
ваших двух примеров не синхронизировано. Первым должен быть «g (f1 a) (f2 b)» или второй «g (f a) (f b) (f c) (f d)». –
Вы можете написать 'h = \ a b -> g (f a) (f b)' как 'h = (. F). г . f', но вы не должны (читаемость). –
в вашем новом втором примере, вы имеете в виду функции 'f', принимающие' arg, и 'g' funcs, принимающие 2? Тогда вам нужен 3-й уровень. Не могли бы вы написать его полностью? –