Which is why it makes an easy target for a Scheme compiler, right?
http://github.com/dyoo/moby-scheme
http://planet.plt-scheme.org/display.ss?package=moby.plt&owner=dyoo
http://www.cs.brown.edu/~sk/Publications/Talks/Moby-Bootstrap/
> I find it helpful to [...] draw up finite state machines.
Unless his entire code is written in regular expressions (which, albeit, *would* be a total bitch to maintain), I don't think finite state machines are going to be very helfpul.
The name "functional" is a little confusing, since imperative languages are heavily based on functions as well, though they are not typically used in the same way.
Actually, imperative languages are typically based on procedures, not functions. The fact that such languages tend to call procedures "functions" is the confusing bit.
xmonad does what you want with desktops my default. Each of my monitors is bound to one specific workspace at a time; I can switch either monitor independently to any workspace, or manually stretch windows across the gap in between.
You can use xmonad as the window manager for GNOME.
It'll require a little bit of tweaking to make it look normal, though (you'll need to add window decorations, and configure it to make windows floating by default), or you could learn the keyboard shortcuts and use tiling, which sounds like it may work better with the way you want to think about screens anyway. (It sounds terrible, I know, but it's remarkably effective.)
Sure. It's all in what you consider "fundamental", I guess.
" but inefficient isn't the end of the world. Just means it's a first step towards something better."
That's like saying a break in AES to 2^40 isn't the end of the world, it just makes cracking it slightly more efficient.
HELP!!!! I'm being held prisoner in /usr/games/lib!