Excel is not a functional langauge: Got it!
I recently received some attention to a piece I wrote a while back about closures. Basically, folks reacted to my linkage between functional languages and Excel. Being that this site bills itself as a loudspeaker for an Enterprise Architect, I received some particular criticism around my “right” to make such a link. While I don’t claim to be an expert in functional languages, I do not believe I’m alone in my correlation. Some very smart people have also asked the same question: Is a spreadsheet a functional language, or at least a platform for a functional language?
- http://research.microsoft.com/~simonpj/Papers/excel/index.htm
- http://lists.canonical.org/pipermail/kragen-tol/2002-May/000713.html
- http://citeseer.ist.psu.edu/lisper02haxcel.html
So perhaps Excel is not a functional language outright, but its awfully close. The folks at the Haskall Cafe even considered it in this thread. Bjorn Lisper comment sums it up nicely:
Yes, every cell in isolation contains an expression possibly with free variables, and so can be seen as a function in those variables. But these variables are not unbound since they are defined elsewhere in the spreadsheet. Thus, the sheet is rather a system of equations defining values, not functions. I think 0:th order is a good term
![]()
Making a spreadsheet more intelligent is not beyond the realms of research or practices. The following applications attempt to bridge the gap.
- http://siag.nu/siag/
- http://www.mrtc.mdh.se/projects/Haxcel/
They’re definitely not going to eat into Excel’s revenue stream, but they do provide a higher order functional programming language on top of the spreadsheet metaphor.
Finally, I think Bulat Ziganshin sums it up nicely.
> Heard that statement recently — that Excel is a functional
> programming language, and the most used one — of any programming
> languages — on Earth! Is it true?that’s true and breaks any words that FP thinking is “unnatural” for peoples
![]()
what matters here is that in Excel you *don’t* define calculation order which makes it a functional rather than imperative approach to computations
If, as an enterprise architect, I needed to make the case for functional languages, I can point to Excel. Business people know how powerful Excel is to their bottom line. Technical folks could ignore the semantics of such a correlation and focus on the end result: using a platform that will deliver the needs of the business quickly and accurately.
February 11th, 2007 at 3:01 pm
Dear sir, I would like to subscribe to your enterprise architect newsletter.
March 6th, 2007 at 10:52 pm
[...] you did, Improv forced you to think first. Which reminds me that millions of people program in a functional manner, they just don’t know it. Anyway it doesn’t help that a lot of writing about functional [...]