SE701:March 26
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 ...)