Wadler's original paper on Monads for Functional Programming ( Haskell ) ,he says

Another question with a long history is whether it is desirable to base programs on array update. Since so much effort has gone into developing algorithms and architectures based on arrays, we will sidestep this debate and simply assume the answer is yes.

There is no citation or hints to other possible architectures. I have heard something about an architecture suited to Lisp. Can somebody please guide me with some explanations and guidance on where /how I can get started on this topic. I would much appreciate you can explain the different architecture briefly.

  • 1
    Perhaps it's possible add some kind of hardware support to make trees more efficient than they're now. Especially concerning cache locality. – CodesInChaos Feb 20 '16 at 11:55
  • In a certain sense, a computer with multiple cores is more suited to a pure language. – PyRulez Feb 20 '16 at 13:41
  • @CodesInChaos The wiki has a stump on Graph Reduction machine and a link to SECD machine based on a 1963 paper. Not sure if that is it. – Asterisk Feb 20 '16 at 15:28

There is the Symbolics Lisp Machine, also Lisp Machine

On another note, that might also be apropos, there used to be custom hardware for data-flow programming. This text says that the concept developed in the 70's and custom hardware was pursued into the 80's.

  • Lists are really just arrays with extra features. – Robert Harvey Feb 21 '16 at 15:19
  • @RobertHarvey Conceptually very different . One provides indexed operations , the other sequential . Only one is required to be aware of next (and previous) i.e. I am part of a sequence. Actually an array needs not store contents sequentially .It's just convenience . An array just needs to provide an index ( this index can be conceptually anything ) and that index can be used to fetch and update the element in O(1). – Asterisk Feb 24 '16 at 17:12

Not the answer you're looking for? Browse other questions tagged or ask your own question.