May I draw your attention to the SPREAD programming language. It has not been implemented yet, but its design is almost finished.
SPREAD borrows from many programming languages, but also introduces a number of interesting new concepts:
1) Programs are first-class immutable values and are written in postfix format
2) Programs are built from Operators, Streams, Symbols and Characters
3) Programs may have alternative Versions - aka a Set of Programs
4) A Stream encloses a sequence of Programs, so that they can be manipulated
5) Operators, such as Add(+) and Multiply(*), combine Streams into new Streams
6) Operators are maximally overloaded to always work with all types of Streams
7) Programs can be labeled by other Programs, creating Pairs
8) Labeled Programs can be merged/replaced with other (labeled) Programs
9) Programs are optimally and lazily evaluated on demand (re-using computations)
Next to that, an algebra of Streams is defined, together with an algebra of Labels.
SPREAD is mono-typed with Programs. It is an ultimate attempt to create a 'better' Excel.