Giả sử tôi có hai hàm, f:X->Y
và g:Y*Y->Z
. Tôi muốn thực hiện chức năng thứ ba, h(a, b) = g(f(a), f(b))
.chuỗi các hàm đa tham số
h a b = g (f a) (f b)
Có cách nào để viết nó như h(a, b) = g*f (a, b)
không?
Và điều gì xảy ra nếu h(a,b,c,d) = g2*g1*f2*f1 (a,b,c,d)
, trong đó g_i
mất 2 arg?
hai ví dụ của bạn là đồng bộ. Đầu tiên phải là 'g (f1 a) (f2 b)' hoặc 'g (f a) (f b) (f c) (f d)' thứ hai. –
Bạn có thể viết 'h = \ a b -> g (f a) (f b)' thành 'h = (. F). g. f', nhưng bạn không nên (khả năng đọc). –
trong ví dụ 2 mới của bạn, bạn có nghĩa là các hàm 'f' dùng' arg, và 'g' funcs dùng 2? Sau đó, bạn cần một cấp độ 3. Bạn có thể viết nó ra đầy đủ chính xác không? –