add(a, b) { return a+b; }
fib(a) { return (a <= 1) ? 1 : (fib(a-1) + fib(a-2)); }
That's totally valid K&R C. The lack of boilerplate makes abstraction really cheap, conceptually --- Forth programmers will recognise the advantage here. You can write real programs out of tiny one-line definitions like the above.Of course, ANSI C is better in just about every other way, but I still regret losing the stripped-down simplicity of K&R C.