KEMBAR78
LISP: Introduction To Lisp | PPTX
Introduction to LISP
OverviewAGENDAHistoryIntroductionLisp FeaturesSyntaxComparison structuresLambda expressionsConses and ListsList processing proceduresSummaryLisp applications
Lisp was invented by John McCarthy in 1958 while he was at the MIT.McCarthy published its design in a paper in Communications of the ACM in 1960.Lisp was first implemented by Steve Russell on an IBM 704 computer.Connection to AI:Lisp was closely connected to AI research communities, especially on PDP-10 systems.Lisp was used as the implementation of the programming language Micro Planner  which was used in the famous AI system SHRUDLU.Over its fifty-year history, lisp has spawned many variations on the core theme of an S-expression language. Lisp history
A Lisp machine at the MIT museum
Introduction to Lisp(List processing)Lisp is second oldest  high-level programming languages with a long history and a distinctive, fully parenthesized syntax.Lisp is a Tool to solve some of the most difficult problems in the world of computing.It is an example of elegant, minimalist language.Lisp is one of the most popular programming languages that is used for Artificial intelligence.
Lisp featuresBuilt in support for Lists.Atomic storage management.Dynamic TypingUniform syntax.Interactive environment.ExtensibilityStandard macros.Special forms(loop, do, dotimes..)
Syntax (Data structures)Lists are surrounded by parenthesis.Ex: (),(()),((a,b,c)),((1,2),3,4) are all Lists.Atoms are string of characters beginning with letter, digit or special characters other than left “(“ and right “)” Ex: (a b c d) is a list of four elements(atoms) a,b,c,d      Peace       Of       Mind        6678Prefix notation is followed in Lisp.Operators first, followed by the arguments.Ex: (+ 4 5)  adds 4 to 5      (/ 12 6)2
Function DefinitionList represents function calls as well as basic data structures.(factorial 4)12(+4 2)6Definition of a function(defun <f-name><parameter-list><body>)Ex: (defun square(X)              (*XX))          SQUARE>(square2)4>(square(square 2))16
Function inside functionEx: (+3(40)6)49      (+3(+3 3)4)13Addition, subtraction and multiplication process2*3366
Comparing functionsThe comparison symbols are( => ,< ,> ,=<, >= ,<= )These function return either True(T) or Nil.Ex: (= 4 4)T        (< 4 4)NIL        (> 5 1)T        (>= 6 3)T        (<= 4 3)NIL
Other comparison functionUn-equality function( \=)Returns TRUE if values are not equal else NIL if values are equal.Division function(/)Ex: (/4 2) 2Max: It takes the maximum value of some numbersEx: (Max -3 3 40 150 -100)150Min: It takes the minimum value of some numbersEx: (Min 3 4 10 -5)-5
Assigning functions:Syntax: setq( argument)Ex: (setq a 3)3      (* a 4)12Explicit evaluation call;(eval a)3Note: A quoted value is always kept untouched.(setq b ‘(+ a 4))(+ a 4)
4 equality predicates: (=, equal, eq, eql) for numerical values only.Ex:(= 2 4/2) T(setf a (1 2)) (1 2)(setf b (1 2)) (1 2)(equal a b)T(eql 3 9/3)T
Nil represents false and an empty list.Ex:(null nil)T(null())T(null ‘(a b))NIL(not ‘(a b))NIL
Lambda expressionsLambda operator is used to bind variables to values which are then evaluated within an expression.Arguments to lambda are list of arguments, and the expression or expressions to which the function evaluates. (lambda (arg) (arg+1)) evaluates to the function that, when applied takes one argument , binds it to arg and returns the number one greater then that argument.Ex: (lambda (arg) (arg+1) 4)5
Conses and listsA lisp list is a singly linked list, Each cell of this list is called a Cons, is composed of two pointers, called the car and cdr.If the given cons is taken to be the head of the linked list, then its car points to the first element of the list, and its cdr points to the rest of the List.A variable which refers to the list is simply a pointer to the first cons of the list.Parenthesized  S-expressions represent Linked list structure.
List-processing proceduresList can be directly created with the list procedure, which takes any number of arguments and returns the list of these arguments.Ex: (List 1 2 ‘ a 3) ( 1 2 a 3)     (List 1 ‘ (2 3) 4)(1 (2 3) 4)For the linked lists cons procedure can be used to add an element to the front of the list.Ex: (cons 1 ‘ (2 3))(1 2 3)Append procedure append two or more lists to one another.Ex: (append ‘ (1 2) ‘ (3 4))(1 2 3 4)
Basic lisp examplesBasic hello world program(print “Hello world”)To evaluate factorial on a number(n)(defun factorial (n)         (if (<= n 1)             1            (* n (factorial(- n 1)))))//iterative version  which uses common Lisp’s Loop Macro//(defun factorial (n)         (loop for I from 1 to n            for fac=1 then (* fac i)            finally (return fac)))//using recursive function//(defun –reverse (list)           (let  ((return –value  ‘()))              (dolist  (e list) (push e return-value))                 return-value))
Lisp SummarySimple syntax.  so, its very easy to parse.Programming in Lisp is distinguished from other programming languages due to its unique syntax and development mode.The interchangeability of code and data also gives Lisp instantly recognizable syntax. All lisp program code is written as S-expressions , or parenthesized lists.
Applications of Lisp programmingCommon Lisp is used to develop research applications(often in Artificial Intelligence)For rapid development of prototypesLisp language is often used in interactive command line, which may be combined with an IDE.Common Lisp is used in many commercial applications, Including the Yahoo! Store Web-commerce site.Other visible applications people have developed using Lisp are:Emacs
G2

LISP: Introduction To Lisp

  • 1.
  • 2.
    OverviewAGENDAHistoryIntroductionLisp FeaturesSyntaxComparison structuresLambdaexpressionsConses and ListsList processing proceduresSummaryLisp applications
  • 3.
    Lisp was inventedby John McCarthy in 1958 while he was at the MIT.McCarthy published its design in a paper in Communications of the ACM in 1960.Lisp was first implemented by Steve Russell on an IBM 704 computer.Connection to AI:Lisp was closely connected to AI research communities, especially on PDP-10 systems.Lisp was used as the implementation of the programming language Micro Planner which was used in the famous AI system SHRUDLU.Over its fifty-year history, lisp has spawned many variations on the core theme of an S-expression language. Lisp history
  • 4.
    A Lisp machineat the MIT museum
  • 5.
    Introduction to Lisp(Listprocessing)Lisp is second oldest high-level programming languages with a long history and a distinctive, fully parenthesized syntax.Lisp is a Tool to solve some of the most difficult problems in the world of computing.It is an example of elegant, minimalist language.Lisp is one of the most popular programming languages that is used for Artificial intelligence.
  • 6.
    Lisp featuresBuilt insupport for Lists.Atomic storage management.Dynamic TypingUniform syntax.Interactive environment.ExtensibilityStandard macros.Special forms(loop, do, dotimes..)
  • 7.
    Syntax (Data structures)Listsare surrounded by parenthesis.Ex: (),(()),((a,b,c)),((1,2),3,4) are all Lists.Atoms are string of characters beginning with letter, digit or special characters other than left “(“ and right “)” Ex: (a b c d) is a list of four elements(atoms) a,b,c,d Peace Of Mind 6678Prefix notation is followed in Lisp.Operators first, followed by the arguments.Ex: (+ 4 5)  adds 4 to 5 (/ 12 6)2
  • 8.
    Function DefinitionList representsfunction calls as well as basic data structures.(factorial 4)12(+4 2)6Definition of a function(defun <f-name><parameter-list><body>)Ex: (defun square(X) (*XX)) SQUARE>(square2)4>(square(square 2))16
  • 9.
    Function inside functionEx:(+3(40)6)49 (+3(+3 3)4)13Addition, subtraction and multiplication process2*3366
  • 10.
    Comparing functionsThe comparisonsymbols are( => ,< ,> ,=<, >= ,<= )These function return either True(T) or Nil.Ex: (= 4 4)T (< 4 4)NIL (> 5 1)T (>= 6 3)T (<= 4 3)NIL
  • 11.
    Other comparison functionUn-equalityfunction( \=)Returns TRUE if values are not equal else NIL if values are equal.Division function(/)Ex: (/4 2) 2Max: It takes the maximum value of some numbersEx: (Max -3 3 40 150 -100)150Min: It takes the minimum value of some numbersEx: (Min 3 4 10 -5)-5
  • 12.
    Assigning functions:Syntax: setq(argument)Ex: (setq a 3)3 (* a 4)12Explicit evaluation call;(eval a)3Note: A quoted value is always kept untouched.(setq b ‘(+ a 4))(+ a 4)
  • 13.
    4 equality predicates:(=, equal, eq, eql) for numerical values only.Ex:(= 2 4/2) T(setf a (1 2)) (1 2)(setf b (1 2)) (1 2)(equal a b)T(eql 3 9/3)T
  • 14.
    Nil represents falseand an empty list.Ex:(null nil)T(null())T(null ‘(a b))NIL(not ‘(a b))NIL
  • 15.
    Lambda expressionsLambda operatoris used to bind variables to values which are then evaluated within an expression.Arguments to lambda are list of arguments, and the expression or expressions to which the function evaluates. (lambda (arg) (arg+1)) evaluates to the function that, when applied takes one argument , binds it to arg and returns the number one greater then that argument.Ex: (lambda (arg) (arg+1) 4)5
  • 16.
    Conses and listsAlisp list is a singly linked list, Each cell of this list is called a Cons, is composed of two pointers, called the car and cdr.If the given cons is taken to be the head of the linked list, then its car points to the first element of the list, and its cdr points to the rest of the List.A variable which refers to the list is simply a pointer to the first cons of the list.Parenthesized S-expressions represent Linked list structure.
  • 17.
    List-processing proceduresList canbe directly created with the list procedure, which takes any number of arguments and returns the list of these arguments.Ex: (List 1 2 ‘ a 3) ( 1 2 a 3) (List 1 ‘ (2 3) 4)(1 (2 3) 4)For the linked lists cons procedure can be used to add an element to the front of the list.Ex: (cons 1 ‘ (2 3))(1 2 3)Append procedure append two or more lists to one another.Ex: (append ‘ (1 2) ‘ (3 4))(1 2 3 4)
  • 18.
    Basic lisp examplesBasichello world program(print “Hello world”)To evaluate factorial on a number(n)(defun factorial (n) (if (<= n 1) 1 (* n (factorial(- n 1)))))//iterative version which uses common Lisp’s Loop Macro//(defun factorial (n) (loop for I from 1 to n for fac=1 then (* fac i) finally (return fac)))//using recursive function//(defun –reverse (list) (let ((return –value ‘())) (dolist (e list) (push e return-value)) return-value))
  • 19.
    Lisp SummarySimple syntax. so, its very easy to parse.Programming in Lisp is distinguished from other programming languages due to its unique syntax and development mode.The interchangeability of code and data also gives Lisp instantly recognizable syntax. All lisp program code is written as S-expressions , or parenthesized lists.
  • 20.
    Applications of LispprogrammingCommon Lisp is used to develop research applications(often in Artificial Intelligence)For rapid development of prototypesLisp language is often used in interactive command line, which may be combined with an IDE.Common Lisp is used in many commercial applications, Including the Yahoo! Store Web-commerce site.Other visible applications people have developed using Lisp are:Emacs
  • 21.
  • 22.
  • 23.
    Igor EngraverPick atutorial of your choice and browse through it at your own pace.The tutorials section is free, self-guiding and will not involve any additional support.Visit us at www.dataminingtools.netVisit more self help tutorials