- Interlizing an accurate understanding of what is functional and object-oriented programs means
- Devlop skills necessary to learn new programming language quickly
- not just because you repeated it three times , but because you will learn key concepts that underly alomst programming language
- Master specific language concept such as
- Closures
- Delay evaluation
- Pattern Matching
- as well as new ones by knowing how to approach some thing by trying to understand what it means and how it's used in programs
- Evaluate power and elegence of programming language even recognize sort of which tools, which constructs are approperiate for different tasks you might be using or at least have additional insight into how to go about doing that
- Basics , functions , scope , lookup rules ,recursion
- Datatypes , patternn-matching , tail recursion
- First-class functions , closures
- Equivalence , correctness, soundness, completeness, week-types meaning
- Dynamic types , delay-evaluation , stream , memoization
- static checking , static vs dynamic
- dynamically-typed object-oriented programming in ruby
- multiple inheritance , mixins , duck-typing
- subtyping , generics
simple grid to see how course covered three out of four possibilities of combining functional or oop with dynamically typed and statically typed
Dynamically typed | statically typed | |
---|---|---|
functional Language | Racket | SML |
Object-oriented | Ruby | Java/C# |