• Save
LISP: Introduction To Lisp
Upcoming SlideShare
Loading in...5
×
 

LISP: Introduction To Lisp

on

  • 2,118 views

LISP: Introduction To Lisp

LISP: Introduction To Lisp

Statistics

Views

Total Views
2,118
Views on SlideShare
2,092
Embed Views
26

Actions

Likes
1
Downloads
0
Comments
0

3 Embeds 26

http://www.dataminingtools.net 19
http://dataminingtools.net 5
http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

LISP: Introduction To Lisp LISP: Introduction To Lisp Presentation Transcript

  • Introduction to LISP
  • Overview
    AGENDA
    History
    Introduction
    Lisp Features
    Syntax
    Comparison structures
    Lambda expressions
    Conses and Lists
    List processing procedures
    Summary
    Lisp 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 features
    Built in support for Lists.
    Atomic storage management.
    Dynamic Typing
    Uniform syntax.
    Interactive environment.
    Extensibility
    Standard 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
    6678
    Prefix notation is followed in Lisp.
    Operators first, followed by the arguments.
    Ex: (+ 4 5)  adds 4 to 5
    (/ 12 6)2
  • Function Definition
    List represents function calls as well as basic data structures.
    (factorial 4)12
    (+4 2)6
    Definition of a function
    (defun <f-name><parameter-list><body>)
    Ex: (defun square(X)
    (*XX))
    SQUARE
    >(square2)4
    >(square(square 2))16
  • Function inside function
    Ex: (+3(40)6)49
    (+3(+3 3)4)13
    Addition, subtraction and multiplication process
    2*3
    36
    6
  • Comparing functions
    The 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 function
    • Un-equality function( =)
    Returns TRUE if values are not equal else NIL if values are equal.
    • Division function(/)
    Ex: (/4 2) 2
    • Max: It takes the maximum value of some numbers
    Ex: (Max -3 3 40 150 -100)150
    • Min: It takes the minimum value of some numbers
    Ex: (Min 3 4 10 -5)-5
  • Assigning functions:
    Syntax: setq( argument)
    Ex: (setq a 3)3
    (* a 4)12
    Explicit evaluation call;
    (eval a)3
    Note: 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 expressions
    Lambda 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 lists
    A 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 procedures
    List 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 examples
    Basic 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 Summary
    Simple 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 programming
    Common Lisp is used to develop research applications(often in Artificial Intelligence)
    For rapid development of prototypes
    Lisp 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
    • AutoCAD
    • Igor Engraver
  • Pick a tutorial 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.net
    Visit more self help tutorials