UNB/ CS/ David Bremner/ teaching/ cs4613/ tutorials/ curry

Currying

    (define (mogrify g f)
      (lambda (x) (g f x)))

    (define (fderiv2 f) (mogrify deriv f))

    (plot (function (fsub (fderiv2 sin) cos) -2pi 2pi))
    (define (currify g)
      (lambda (f) (lambda (x) (g f x))))

    (define fderiv3 (currify deriv))
    (module+ test
      (for ([x test-points])
        (check-= (cos x) ((fderiv3 sin) x) epsilon)))