SE701:March 26

From Marks Wiki
Jump to navigation Jump to search

Possible Screencasts

Please note this is my perception of what was said in the lecture. It may or may not be correct.

Packages

  • Explain the basic idea of packages
  • Mechanics in Lisp -> how to create a package
  • Symbol syntax used (package-name ::symbol)
  • Other weird stuff -> #:symbol , : keyword, (symbol-name ...), (intern ...)

Macros

  • Basic idea: transformation of source code at compile time
  • Back quote, comma, (comma, @)
  • Only once evaluation
  • Avoiding variable capture
  • Pragmatics

Collections

  • Operations for mapping
  • Search
  • Reduce - reducing list to single value
  • For lists, vectors etc.
  • Simple (equality) operations and high order function versions (?)

Non-standard method combination

i.e. :before :after :around methods

  • Syntax for specifying :before :after :around
  • Semantics
  • Interaction with multiple inheritance
  • Examples of use
  • Contrast and compare Lisp with AspectJ

Conditions

  • Condition classes (simplified class type)
  • Separation of raising an error from unwinding the stack
  • Coding handlers

Hashes

  • (make-hash-table ...)
  • :test eql or equal
  • (get hash ...) (setf(get hash ...))
  • Loop support for iterating over keys and values

Multiple Values

  • (get hash ...)
  • (values principle-value ...)