Lambda: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
m (Q18 moved to Lambda over redirect: revert)
 
(21 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Olpcboxtop|toptext=[[{{PAGENAME}}|XO-Lambda]]}}
{{Olpcboxtop|toptext=[[{{PAGENAME}}|Lambda Activity]]}}
{{ OBX activity | [[Image:xo-lambda-icon.svg]]|extra}}
{{ OBX activity | [[Image:xo-lambda-icon.svg]]|extra}}
{{ OBX team | Antoine van Gelder}}
{{ OBX version|alpha|org.artifactual.LambdaActivity}}
{{ OBX source dev|activities/xo-lambda}}
{{ OBX xobundle|http://dev.laptop.org/~antoine/bundles/Lambda-1.xo|Lambda-1}}
{{ OBX team |[[User:Hummingbird|Antoine van Gelder]]}}
<small>see more [[:Category:OBX templates|templates]] or [[OBX proposals|propose new]]</small>
<small>see more [[:Category:OBX templates|templates]] or [[OBX proposals|propose new]]</small>
{{Olpcboxbottom}}
{{Olpcboxbottom}}


[[Image:xo-lambda-interface.png|thumb|right|350px|The [[Lambda]] activity interface]]


Lambda activity is a simple Lisp interpreter for the OLPC XO-1.
[[Image:xo-lambda.png|thumb|right|350px|The [[XO-Lambda]] interface]]

= About =

XO-Lambda is a simple Lisp interpreter for the OLPC XO-1.


It features:
It features:
Line 18: Line 18:
* A simple foreign function interface
* A simple foreign function interface
* A full screen editor which can freely mix text and graphics
* A full screen editor which can freely mix text and graphics
* Implemented in ~2000 lines of (mostly) C
* Implemented in ~2000 lines of C code
* Released under a MIT/X11 license
* Released under a MIT/X11 license





= Goal =
= Goal =
The goal of the Lambda activity is not to be a full featured, standards compliant, high performance Lisp as there already exists several excellent examples of such systems!


Rather, the Lambda activity attempts to accomplish two highly
The goal of xo-lambda is not to be a full featured, standards compliant, high performance Lisp as there already exists several excellent examples of such systems!

Rather, the xo-lambda system attempts to accomplish two highly
specialized objectives:
specialized objectives:


* Fun - A text based Lisp console may be a barrel-load of fun if all you have is a 300 baud modem and an account on a university mainframe but if you have a bitmapped color display, a video camera, microphone and 16 bit digital audio you have to ask yourself: "Can this thing sing?"
* Fun - A text based Lisp console may be a barrel-load of fun if all you have is a 300 baud modem and an account on a university mainframe but if you have a bitmapped color display, a video camera, microphone and 16 bit digital audio you have to ask yourself: "Can this thing sing?"


* Simplicity - There is an enormous difference in complexity between the original single page implementation of Lisp in John McCarthy's 1960 paper and modern implementations. Given the performance improvements computers have seen in the last few years it seems that there is significant educational value to be gotten from a system which, while performant enough to have fun, is still simple enough that it can reveal all of its secrets to the disciplined student within a reasonable amount of time.
* Simplicity - There is an enormous difference in complexity between the original single page implementation of Lisp in John McCarthy's 1960 paper and modern implementations. Given the performance improvements computers have seen in the last few years it seems that there is significant educational value to be gotten from a system which, while performant enough to have fun, is still simple enough that it can reveal all of its secrets to the curious student within a reasonable amount of time.

= Compilation =
== Dependencies ==
TODO
== Instructions ==
make update
make all


= Lesson 1 - Hello World =

* Enter the following text into the Lambda activity console:

(print "Hello World")

* Now, on the same line as the text you entered press the key combination: '''<ctrl>+<space>'''

* Your console should now look as follows:

(print "Hello World")
"Hello World"

Latest revision as of 05:20, 29 January 2009

Xo-lambda-icon.svg
Xo s.png Current version is alpha.

Activity id is org.artifactual.LambdaActivity

see more templates or propose new

The Lambda activity interface

Lambda activity is a simple Lisp interpreter for the OLPC XO-1.

It features:

  • Integer & Real numeric types
  • Mark & Sweep garbage collection
  • A simple foreign function interface
  • A full screen editor which can freely mix text and graphics
  • Implemented in ~2000 lines of C code
  • Released under a MIT/X11 license


Goal

The goal of the Lambda activity is not to be a full featured, standards compliant, high performance Lisp as there already exists several excellent examples of such systems!

Rather, the Lambda activity attempts to accomplish two highly specialized objectives:

  • Fun - A text based Lisp console may be a barrel-load of fun if all you have is a 300 baud modem and an account on a university mainframe but if you have a bitmapped color display, a video camera, microphone and 16 bit digital audio you have to ask yourself: "Can this thing sing?"
  • Simplicity - There is an enormous difference in complexity between the original single page implementation of Lisp in John McCarthy's 1960 paper and modern implementations. Given the performance improvements computers have seen in the last few years it seems that there is significant educational value to be gotten from a system which, while performant enough to have fun, is still simple enough that it can reveal all of its secrets to the curious student within a reasonable amount of time.

Compilation

Dependencies

TODO

Instructions

 make update
 make all


Lesson 1 - Hello World

  • Enter the following text into the Lambda activity console:
 (print "Hello World")
  • Now, on the same line as the text you entered press the key combination: <ctrl>+<space>
  • Your console should now look as follows:
 (print "Hello World")
 "Hello World"