Fortran's genesis is quite different from the algol family of languages which is what everyone uses today. This is why numerical computation always feels a bit off compared to the host language, be is numpy or GSL.
Comparing lisp and APL is interesting because they feel almost opposite in approach to language design.
Lisp optimizes for syntax simplicity, the "all possible computation is expressible with these three symbols" sort of thing. see also: forth
APL takes the more traditional math syntax approach and optimizes for space. "how to most concisely express an operation"
As a tangent. I have to admit, as a casual enjoyer of math, I sometimes wish that institutionally they had gone the lisp route instead of the APL route. a simple universal syntax instead of the super dense domain specific ones they use. I understand why they do it. easier to manipulate. But I hate getting stuck at the beginning, functionally illiterate, just trying to figure out their syntax.
> What Made Lisp Different:
> 1. Conditionals (if-then-else construct)
> 2. A function type (functions as first class objects)
> 3. Recursion
> 4. A new concept of variables (dynamic typing and pass-by-pointer)
> 5. Garbage-collection
That list is incomplete. Those are things that Lisp invented but is now commonplace. What it also invented but rather few languages also support is the capability of metaprogramming, being able to treat code as data.