You are not logged in. Login Now
 0-2          
 
Author Message
cross
The Lispy item. Mark Unseen   Sep 8 15:34 UTC 2010

This item is for discussion of all things Lisp.

Dating from 1958, Lisp is the second oldest language still in active 
use, predated only by FORTRAN.  There have been many Lisp dialects 
over the years, but only four have any real following:

Common Lisp: by far the largest, and in many ways the most complete 
dialect, Common Lisp emerged in the 1980s as a standard to unify the 
many research dialects of Lisp then in common usage.  It has undergone 
something of a renaissance in the past few years.

Scheme: Developed in 1975 by Gerald Sussman and Guy Steele at MIT, 
Scheme was originally designed as a vehicle for studying the then-new 
Actor model.  Originally called "Schemer", the present name is an 
artifact of the six character filename length limit on MIT's 
Incompatible Timesharing System (ITS), which ran on the PDP-10 Sussman 
and Steele used for the development of Scheme.  Though often thought 
of as a teaching language, because of its simplicity and small size, 
it's quite capable.  The GNU project uses Scheme as the basis of their 
Guile interpreter, the official embedded extension language for GNU 
programs.

Clojure: One of the new languages to emerge in the past few years that 
targets the Java virtual machine, Clojure is a modern dialect with a 
strong concurrency model and excellent Java interoperability support.

Emacs Lisp: The emacs extension language.  Not a particularly good 
Lisp, by Richard Stallman's own admission.  Included just for the 
sheer amount of emacs Lisp code out there.
2 responses total.
cross
response 1 of 2: Mark Unseen   Sep 8 15:46 UTC 2010

The origins of some Lisp nomenclature....

LISP is short for LISt Processing, and indeed, the eponymous data 
structure in Lisp is fundamental.

There are two basic operations for taking lists apart: one to take the 
first element in a list, usually called 'CAR' (called "first" in 
Clojure), the second to return the rest of the list, usually 
called 'CDR' (called "rest" in Clojure).  These operations owe their 
names to early Lisp implementations on the 36-bit IBM 704, 7090, and 
7094, which had operation codes for taking 15 bit values and storing 
them in a single 36-bit machine word (the other six bits were used as 
flags and the like).  These fields were called the address and 
decrement fields, and there were instructions that took the 'Contents 
of Address Register' and 'Condents of Decrement Register.'  The 
mnuemonics for these instructions eventually made their way into Lisp; 
it is with some sadness that one finds them missing from Clojure.

Paul Graham has written extensively on Lisp and the things that make 
it unique.  Among others, the notion of 'code as data'; that is, Lisp 
code is written as Lisp data (called forms, which are represented as 
nested lists).  This allows for all sorts of neat manipulations to be 
performed on code, which leads to the notion of macros, but not in the 
sense of the C preprocessor: Lisp macros work on entire expressions, 
and are quite capable of destructuring code.  Indeed, the whole of 
Lisp is available at compile-time during macro-expansion, leading to 
immense power.  More of Graham's thoughts on what makes Lisp unique 
are here: http://www.paulgraham.com/icad.html

I confess, Lisp is among my favorite programming languages.
tsty
response 2 of 2: Mark Unseen   Dec 2 08:18 UTC 2010

  
wereeh is dadroc . ... spoeeking of lisp ... 
  
 0-2          
Response Not Possible: You are Not Logged In
 

- Backtalk version 1.3.30 - Copyright 1996-2006, Jan Wolter and Steve Weiss