Arrp is a functional language for digital signal processing that:

Write code like you write the math - using the same equations

y[0] = 0;
y[n] = b*x[n] - a*y[n-1];

Work with signals at different rates

y[n] = x[n*hop]

Work with multi-dimensional streams

y[n,k] = x[n+k] * w[k]

Do math with entire signals

x[n] = n;
y = sin(x/100*2*pi) * 0.5;

Define generic functions with other functions as parameters

apply_to_pairs(x, f) = y where
    y[t] = f(x[t], x[t+1]);

mean(a, b) = (a + b)/2;

output = apply_to_pairs(input, mean);