• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
SLIME
 

SLIME

on

  • 6,848 views

An introduction to SLIME, the Superior Lisp Interaction Mode for Emacs. ...

An introduction to SLIME, the Superior Lisp Interaction Mode for Emacs.

This talk was given at ILUGD, March 2009 meeting at JNU, New Delhi.

The same talk was given a week later at OSSCamp, held at IIT Delhi on March 29.

Statistics

Views

Total Views
6,848
Views on SlideShare
6,834
Embed Views
14

Actions

Likes
4
Downloads
54
Comments
1

3 Embeds 14

http://www.linkedin.com 7
http://www.slideshare.net 6
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

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

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • learn sth to use the slime.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    SLIME SLIME Presentation Transcript

    • SLIME The Superior Lisp Interaction Mode for Emacs An Introduction -- Chaitanya Gupta
    • Common Lisp: Syntax No Syntax Well, actually there is, but...
    • Common Lisp: Syntax Prefix Notation (operator arg1 arg2 ...) A List (Lisp == LISt Processor)
    • CL Examples
        • Arithmetic operations (+ 4 5 6) => 15 (* 10 20) => 200 (/ 60 9) => 20/3
        • Comparisons (= 5 5) => T (<= 10 5) => NIL
    • CL Examples
        • Strings (length “foobar”) => 6 (string-upcase “quux”) => “QUUX”
        • Assignment (setf x 9) => 9 (setf y (+ x 10)) => 19
    • CL Examples
        • Flow Control (if (< x y) (print “foo”) (print “bar”))
        • Iteration (dotimes (i 10) (print “Hello World!”))
    • CL Examples
        • Functions (defun factorial (n) (if (<= n 1) 1 (* n (factorial (1- n))))) (factorial 0) => 1 (factorial 5) => 120
    • The REPL Read Eval Print Loop
    • Architecture SLIME SWANK Client Server Emacs SBCL, CMUCL, CLISP, etc.
    • Evaluation
      • C-x C-e M-x slime-eval-last-expression
      • C-M-x M-x slime-eval-last-defun
      • C-c C-r M-x slime-eval-region
    • Compilation
      • C-c C-c M-x slime-compile-defun
      • C-c C-k M-x slime-compile-and-load-file
      • M-n M-x slime-next-note
      • M-p M-x slime-previous-note
    • Completion
      • TAB M-x slime-complete-symbol
      • M-TAB M-x slime-fuzzy-complete-symbol
    • Documentation
      • SPC M-x slime-space
      • C-c C-d d M-x slime-describe-symbol
      • C-c C-d a M-x slime-apropos
      • C-c C-d h M-x slime-hyperspec-lookup
    • Finding Definitions
      • M-. M-x slime-edit-definition
      • M-, M-* M-x slime-pop-find-definition-stack
      • (the “Meta-point” commands)
    • Inspector
      • C-c I M-x slime-inspect
      • Some Inspector commands
        • RET M-x slime-inspector-operate-on-point
        • l M-x slime-inspector-pop
        • n M-x slime-inspector-next
        • M-RET M-x slime-inspector-copy-down
    • Cross-reference
      • C-c C-w c M-x slime-who-calls
      • C-c C-w w M-x slime-calls-who
      • C-c C-w r M-x slime-who-references
      • C-c C-w b M-x slime-who-binds
      • C-c C-w s M-x slime-who-sets
    • Disassembly
      • C-c M-d M-x slime-disassemble-symbol
      • C-c C-t M-x slime-toggle-trace-definition
      • M-x slime-untrace-all
    • SLDB: the SLIME debugger
      • Examining Frames
        • t M-x sldb-toggle-details
        • v M-x sldb-show-source
        • e M-x sldb-eval-in-frame
        • i M-x sldb-inspect-in-frame
    • SLDB: the SLIME debugger
      • Frame Navigation
        • n M-x sldb-down
        • p M-x sldb-up
        • M-n M-x sldb-details-down
        • M-p M-x sldb-details-up
    • SLDB: the SLIME debugger
      • Miscellaneous commands
        • r M-x sldb-restart-frame
        • R M-x sldb-return-from-frame
        • C M-x sldb-inspect-condition
        • q M-x sldb-quit
    • How CL helps
      • eval
      • compile, compile-file, load
      • describe, documentation
      • apropos
      • sb-introspect:who-calls, sb-introspect:who-references, etc.
      • disassemble
      • trace, step
      • inspect
    • CL Resources
      • Lisp implementations
        • SBCL -- http://www.sbcl.org/
        • CMUCL -- http://www.cons.org/cmucl/
        • CLISP -- http://clisp.cons.org/
        • Clozure CL -- http://www.clozure.com/clozurecl.html
        • AllegroCL (commercial) -- http://www.franz.com
        • Lispworks (commercial) -- http://www.lispworks.com/
        • Scineer CL (commercial) -- http://www.scieneer.com/scl/
        • and more ...
    • CL Resources
      • Emacs -- http://www.gnu.org/software/emacs/
      • SLIME -- http://common-lisp.net/project/slime/
      • Paredit -- http://mumble.net/~campbell/emacs/paredit.el
    • CL Resources
      • Books
        • Practical Common Lisp (by Peter Seibel) http://www.gigamonkeys.com/book/
        • Common Lisp: A Gentle Introduction to Symbolic Computation http://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/user/dst/www/LispBook/index.html
        • On Lisp (by Paul Graham) http://www.paulgraham.com/onlisp.html
        • Paradigms of AI Programming: Case Studies in Common Lisp (by Peter Norvig) http://norvig.com/paip.html
        • Structure and Interpretation of Computer Programs (by Harold Abelson and Gerald Jay Sussman with Julie Sussman) http://mitpress.mit.edu/sicp/
    • CL Resources
      • CL Tutorials
        • Casting SPELs in Lisp http://www.lisperati.com/casting.html
        • A Tutorial on Conditions and Restarts http://chaitanyagupta.com/lisp/restarts.html
        • Lisp for the Web http://www.adampetersen.se/articles/lispweb.htm