I have always thought that the snobbiest of programmers are those that use Haskell, which is a language so academic that I'm not sure if it's been used outside academia. Haskell is known for what it doesn't have. Haskell doesn't have the same loop structure. It doesn't have variables. It doesn't have the imperative design like most languages. I like Haskell. Any time I need to jump on a math program, I usually solve it in Haskell first, then the language I need second.
A friend of mine is a physics Ph.D. student who is trying to learn C. He wanted to write a program to find all of the 2-by-2 determinants found in a 4-by-4 matrix. There are 36 total. He had his own ideas on how to solve this, but I still think the quickest way is to brute force all of the possibilities.
The following patches of Haskell and C are almost identical. They use the exact same variables ("labels" for the Haskell code) to accomplish the same task. The Haskell code returns an array of floats, where the C code prints each of the 36 determinants.
twoByTwo :: [[Float]] -> [Float] twoByTwo m = concat (map(\i-> concat (map(\j-> concat (map(\p-> map(\q-> (m!!i!!j)*(m!!p!!q)-(m!!i!!q)*(m!!p!!j) )[(j+1)..(n-1)] )[(i+1)..(n-1)]) )[0..(n-2)]) )[0..(n-2)]) where n = length m
void twoByTwo(float *m, int n) { int i, j, p, q; for (i = 0; i < n-1; i++) for (j = 0; j < n-1; j++) for (p = i+1; p < n; p++) for (q = j+1; q < n; q++) printf("%3.1f\n", m[i*n+j]*m[p*n+q] - m[i*n+q]*m[p*n+j]); }