* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download lisp_47542238
Reactive programming wikipedia , lookup
Scala (programming language) wikipedia , lookup
Structured programming wikipedia , lookup
Algorithm characterizations wikipedia , lookup
Knowledge representation and reasoning wikipedia , lookup
Programming language wikipedia , lookup
Recursion (computer science) wikipedia , lookup
Go (programming language) wikipedia , lookup
Corecursion wikipedia , lookup
History of compiler construction wikipedia , lookup
Falcon (programming language) wikipedia , lookup
Abstraction (computer science) wikipedia , lookup
C Sharp (programming language) wikipedia , lookup
Standard ML wikipedia , lookup
Object-oriented programming wikipedia , lookup
Functional programming wikipedia , lookup
Interpreter (computing) wikipedia , lookup
Lisp "List Processing" Lisp history John McCarthy developed the basics behind Lisp during the 1956 Dartmouth Summer Research Project on Artificial Intelligence He intended it as an algebraic LISt Processing (hence the name) language for artificial intelligence work He showed how, given a handful of simple operators and anotation for functions, you can build a whole programming language. Design Goals Formalism for developing a theory of computation Programming language for numerical and logical problems Symbolic manipulation of expressions and sentences Characteristics LISP was one of the earliest high-level programming languages and introduced many ideas such as garbage collection, recursive functions, symbolic expressions, and dynamic type-checking Interest in symbolic computation influenced design Use of simple machine model Attention to theoretical considerations Recursive function theory, Lambda calculus Distinctive Characteristics Not C, C++, Java: a chance to think differently LISt Processing: the ancestor of all functional languages Lisp is good at handling lists of things, and the abstraction level is higher than C/C++ normally allows you to get to. Relative Speeds of 5 language Description of Lisp LISP is usually used as an interpreted language. The interpreter runs what is known as a read- evaluates-print loop. Description of Lisp The two most important kinds of objects in LISP for you to know about are atoms and lists. Atoms are represented as sequences of characters of reasonable length. Such as :34 or join. Lists are recursively constructed from atoms Such as: (a john 34 c3po). The interpreter treats any list as containing the name of a function followed by the arguments to the function. Such as: (+ 2 13 45). Defining Lisp Function Use defun to define your own functions in LISP. (defun <name> <parameter-list> <body>) Example: >(defun square (x) (* x x)) SQUARE >(square 2) 4 Example Code reverse : Format: (reverse <list>) Reverse returns a list that contains all the elements of <list> in reversed order. Example: > (reverse '(picard riker worf crusher)) (CRUSHER WORF RIKER PICARD) > (reverse (reverse '(picard riker worf crusher))) (PICARD RIKER WORF CRUSHER) Resources http://faqs.org/faqs/lisp-faq/part2/section-13.html http://www.cc.gatech.edu/data_files/classes/cs6390/slides/lisp.pdf http://web.syr.edu/~aalarifi/Common%20Lisp.pdf http://norvig.com/python-lisp.html