Lisp Core Primitives Lisp rmsoF Summary of Pure Lisp Lisp History Symbolic Expressions Predicates Lisp

  • View
    2

  • Download
    0

Embed Size (px)

Text of Lisp Core Primitives Lisp rmsoF Summary of Pure Lisp Lisp History Symbolic Expressions Predicates...

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp

    CMPUT 325 - Lisp Basics

    Dr. B. Price & Dr. R. Greiner

    16th September 2004

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 1

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp History

    I History: �LISt Processing� Speci�ed by McCarthy in 1958, but still in use.

    I Inspired by Alonzo Church's abstract theory of computations: �lambda calculus� in 1930's

    I Second high-level language after Fortran. First Language to support:

    I structured IF_THEN_ELSE_ENDIF I dynamic typing of variables, recursion

    I Dialects of Lisp: Pure Lisp, Franz Lisp, MacLisp, InterLisp, Common Lisp (now largely standardized on Common Lisp)

    I Supports functional, procedural, object-oriented and generic programming

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 2

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp History

    I History: �LISt Processing� Speci�ed by McCarthy in 1958, but still in use.

    I Inspired by Alonzo Church's abstract theory of computations: �lambda calculus� in 1930's

    I Second high-level language after Fortran. First Language to support:

    I structured IF_THEN_ELSE_ENDIF I dynamic typing of variables, recursion

    I Dialects of Lisp: Pure Lisp, Franz Lisp, MacLisp, InterLisp, Common Lisp (now largely standardized on Common Lisp)

    I Supports functional, procedural, object-oriented and generic programming

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 2

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp History

    I History: �LISt Processing� Speci�ed by McCarthy in 1958, but still in use.

    I Inspired by Alonzo Church's abstract theory of computations: �lambda calculus� in 1930's

    I Second high-level language after Fortran. First Language to support:

    I structured IF_THEN_ELSE_ENDIF I dynamic typing of variables, recursion

    I Dialects of Lisp: Pure Lisp, Franz Lisp, MacLisp, InterLisp, Common Lisp (now largely standardized on Common Lisp)

    I Supports functional, procedural, object-oriented and generic programming

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 2

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp History

    I History: �LISt Processing� Speci�ed by McCarthy in 1958, but still in use.

    I Inspired by Alonzo Church's abstract theory of computations: �lambda calculus� in 1930's

    I Second high-level language after Fortran. First Language to support:

    I structured IF_THEN_ELSE_ENDIF I dynamic typing of variables, recursion

    I Dialects of Lisp: Pure Lisp, Franz Lisp, MacLisp, InterLisp, Common Lisp (now largely standardized on Common Lisp)

    I Supports functional, procedural, object-oriented and generic programming

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 2

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp History

    I History: �LISt Processing� Speci�ed by McCarthy in 1958, but still in use.

    I Inspired by Alonzo Church's abstract theory of computations: �lambda calculus� in 1930's

    I Second high-level language after Fortran. First Language to support:

    I structured IF_THEN_ELSE_ENDIF I dynamic typing of variables, recursion

    I Dialects of Lisp: Pure Lisp, Franz Lisp, MacLisp, InterLisp, Common Lisp (now largely standardized on Common Lisp)

    I Supports functional, procedural, object-oriented and generic programming

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 2

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ...

    > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y)) sq > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23)

    34 > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y)) sq > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34

    > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y)) sq > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!}

    12 > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y)) sq > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!} 12

    > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y)) sq > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5)

    29 > (DEFUN sq (y) (* y y)) sq > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5) 29

    > (DEFUN sq (y) (* y y)) sq > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y))

    sq > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y)) sq

    > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y)) sq > (sq x)

    144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y)) sq > (sq x) 144

    > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lisp is Interactive

    ohaton: > gcl GCL (GNU Common Lisp) Version(2.2) Licensed under GNU Public Library License ... > (+ 11 23) 34 > (SETF x (* 3 4)) {note: procedural!} 12 > (+ (* x 2) 5) 29 > (DEFUN sq (y) (* y y)) sq > (sq x) 144 > (EXIT)

    Dr. B. Price & Dr. R. Greiner CMPUT 325 - Lisp Basics 3

  • Lisp Core PrimitivesLisp FormsSummary of Pure Lisp Lisp HistorySymbolic ExpressionsPredicates

    Lecture Note Notation

    I Sitting at the Lisp interpreter, things look like this:

    > (+