2 minutes, 20 seconds | Higher-order Functions - slide 22 : 34 |

Currying in Scheme

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)))