Map, Filter, Reduce in Fortran (2019)
milancurcic.com
milancurcic.com
It isn't. Haskell, for example, has a type system expressive enough to encode concepts such as "a function which takes an array of elements of any type (fixed at compile time) and another function which operates on elements of the type that array is composed of and returns an array of elements of that unnamed type" and it has a type system with fewer holes than any Algol-derived language's (Ada, C, Pascal) type system has.
And this can be a mixed blessing. If an inexpressive type system has few or no holes, it becomes a straitjacket where you can't write the kinds of perfectly well-defined functions you need because the type system can't express them. The classic pathological example is how Standard Pascal couldn't express the concept of a function which took an arbitrary-size array, but the example so common it's typically overlooked is how it's impossible in many Algol-derived languages to write one function to compare two numbers instead of having to write four or five such functions, especially if you're unwilling to let the type system hole of automatic integral and floating-point size promotion potentially introduce odd bugs.
Haskell's type system is strong and fairly expressive, with language extensions to make it more expressive.
(This does not change the fact type systems typically express the wrong things, but this post is long enough already.)
In my opinion, Julia is a good successor of Fortran. In my opinion it behaves as a child of Python/Numpy and Fortran ;-)
I took a coin flip in grad school to decide whether to focus on Python and Fortran. Python won the flip, but I've always loved Fortran generally.