Not Lisp again (2009)
Isn't the derivate relatively easy in C?    #include 
  
    const double delta = 1.0e-6;
    double cube(double x) { return x * x * x; }
    double deriv(double (*f)(double), double x) { return (f(x+delta) - f(x)) / delta; }

    int main()
    {
        printf("%f", deriv(&cube, 2));
        return 0;
    }

Am I missing something?