It is possible to generate curried functions in Scheme.

But the parenthesis notation of Lisp does not fit very well with the idea of currying.

(define (curry2 f) (lambda(x) (lambda(y) (f x y)))) (define (curry3 f) (lambda(x) (lambda(y) (lambda(z) (f x y z))))) (define (uncurry2 f) (lambda (x y) ((f x) y))) (define (uncurry3 f) (lambda (x y z) (((f x) y) z)))