Could we build a functional computer

clojurecomputer sciencefunctional programminghaskelllisp

As mush as FP has done, in the end, all our programs are structured.
That is, it doesn't matter how pure or functional we make a them – they are always translated to assembly,
so what actually runs behind the hoods are instructions, states and loops.
We are kind of emulating FP.

As a hardware noob, my question is: why aren't we using computer architectures that actually computed things in a functional style? For example, a computer could consist of primitive "functional chips" such as "concat", "map" and "reduce", and a program would merely tell the computer how to flow the data between those chips in order to compute the desired result, such as in concatenative languages.

nonsense sketch

This doesn't really make sense but might illustrate what I'm thinking.

Best Answer

They do make computers like that. It's called an FPGA. Of course, FPGAs support both sequential and combinational logic, but there's nothing preventing you from just using the combinational portion as you're suggesting.

In practice, however, sequential logic (the kind with state) is extremely useful even at the chip level. For one thing, it significantly reduces the number of logic gates required to solve a problem. For another, it solves a lot of design problems related to signals having different propagation delays.

If you're interested in that sort of thing, FPGAs are well worth checking out. There's an inexpensive arduino-like board called papilio that's great for beginners. People use it for everything from robot control to bitcoin mining.