On 4/24/07, Tony Morris <tmorris@tmorris.net> wrote:
In a debate I proposed "Excel is a functional language". It was refuted
and I'd like to know what some of you clever Haskellers might think :)

My opposition proposed (after some "weeding out") that there is a
distinction between Excel, the application, the GUI and Excel, the
language (which we eventually agreed (I think) manifested itself as a
.xls file). Similarly, VB is both a language and a development
environment and referring to VB is a potential ambiguity. I disagree
with this analogy on the grounds that the very definition of Excel
(proposed by Microsoft) makes no distinction. Further, it is impossible
to draw a boundary around one and not the other.

I also pointed to the paper by Simon Peyton-Jones titled, "Improving the
world's most popular functional language: user-defined functions in
Excel", which quite clearly refers to Excel as a [popular] functional
language.

The debate started when I referred to the fact that financial
institutions change their functional language from Excel to something
like OCaml or Haskell. Of course, there is no doubting that these
companies can replace their entire use of Excel with a functional
language, which I think is almost enough to fully support my position
(emphasis on "almost").


--
Tony Morris
http://tmorris.net/

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Okay.. Excel consists of some c/c++ code, some visual basic, and some sort of cell evaluation engine. The c/c++ and vb are definitely not functional.

Is the cell evaluation engine one? I think not. I do not believe what you can type into those cells does constitute a programming language, or at least not a turing complete one. As far as i know only simple calculations can be performed. For example, is there any way to evaluate f(2) = 0, f(x) = 5 without invoking vba (how does vba affect the dynamic?). As far as i understand you can compose functions by stringing cells together, higher level functions or values, but the contents of the cells themselves are heavily restricted.

I am obviously no Excel guru but I believe that if you can prove it a programming language then you can probably prove that it is a functional one.

--ryan