Fri Jan 15 08:02:42 CET 2010

Can functional programming be liberated from the von Neumann paradigm?

I like some of Conal Elliott's ideas, especially his critique on IO in

The post is about composability.  I.e. a "program" with IO is an
artificial notion.  Really, the unit of composition on that level
should be the module (a bunch of functions and data structures
augmented with static meaning).  Can the "program" be eliminated?

I love this:

  Roly Perera noted that

    ... you never really need to reach `the end'. (It really is all
    about composition.)

  To extend an example in the previous post, after numbers, then
  strings, and then pixels, are phosphors the end? (Sorry for the
  obsolete technology.) After phosphors come photons. After photons
  comes retina & optic nerve. Then cognitive processing (and emotional
  and who-knows-what-else). Then, via motor control, to mouse,
  keyboard, joystick etc. Then machine operating system, and software
  again. Round & round. More importantly, our interactions with other
  wetware organisms and with our planet and cosmos, and so on.

  Roly added:

    What looks like imperative output can be just what you observe at
    the boundary between two subsystems.

  Which is exactly how I look at imperative input/output.

[1] http://conal.net/blog/posts/can-functional-programming-be-liberated-from-the-von-neumann-paradigm/