uLisp is a version of the Lisp programming language designed for the ATmega-based Arduino boards.
Because it's an interpreter you can type commands in, and see the effect immediately, without having to compile and download your program. This makes it an ideal environment for learning to program, or for setting up simple electronic devices based on the Arduino.
Lisp is a rich language, with many advanced features that make it easier to program in than C or C++, so it's ideal for learning about fundamental programming concepts. It's also an ideal language for expressing complex ideas, such as teaching a robot to solve mazes or finding the shortest route on a map. As well as supporting a core set of Lisp functions uLisp includes Arduino extensions, making it ideal as a control language for the Arduino.
RAM: 2 Kbytes to 32 Kbytes.
Program memory: At least 32 Kbytes (the program currently uses about 16 Kbytes of program memory).
EEPROM memory: Not currently used.
Arduino Uno or other ATmega328-based cards. These will give you enough memory for a simple uLisp application; for examples see Mood light (below) and Simon game.
Arduino Mega 2560 or other ATmega2560-based boards. These will give you enough memory for a fairly complex application; for examples see Tweetmaze and Route finder.