|
I meant to answer this a long time ago but got sidetracked and forgot about it. Sorry :)
Basically any real computer has finite resources, like registers and memory. So all but the smallest and most trivial programs will require changing their values and reusing these resources.
The functional programming is an abstraction, which presents a computer with unlimited and unchangeable memory. To execute on real hardware it has to simulate this, through automatic garbage collection.
Also, input and output are inherently non-functional. Languages like Haskell have developed the IO monad to present a functional facade.
That said, I'm sure there are specific hardware features that can make implementing functional programs easier. You can take a look at the Lisp Machines: general purpose computers designed specifically to run Lisp programs and operating systems.
|