is_nat:=func(n); return (is_integer(n) and n >= 0); end; mod2:=func(n); if is_nat(n) then return func(m); if is_nat(m) then return n mod m; end;end;end;end; co:=func(f); if is_func(f) then return func(g); if is_func(g) then return func(x); return f(g(x)); end; end; end; end; end; Definicion currificada de mas: mas':=func(n); return func(m); return n + m; end;end; Definicion de incr3 usando mas': incr3:=mas'(3); Definicion de "al cuadrado": cuad:=func(n); return n*n; end; Definicion de \n.n*n+3 : N -> N usando co, incr3 y cuad: (Usamos \ por lambda) co (incr3)(cuad); Ejemplo; > co (incr3) (cuad) (2); 7; > Escribir todas las funciones usando lambda abstracciones.