Buenas, con un companero estabamos haciendo el parcial del año pasado y nos surgio una duda en el siguiente caso:
Teniendo la siguiente linea:
(head (((:) . head) [1] foldr ((:) . head) [] (map(1:) map(1:) as)))
Entendemos que la composicion de funciones ((:) . head) tomara como entrada el valor [1] y luego lo concatenara con el segundo argumento.
Lo que no nos queda claro es por que esa composicion de funciones no "intenta" agarrar los dos parametros a la vez (lo cual terminaria en un error)