Nemerle for OOP Programmers Table of Contents - vilinski/nemerle GitHub Wiki

Week 0

  • Values and Variables
  • Type Inference
  • Methods
    • Returning Values
  • Primitive Types
  • Simple Examples
  • Decision Statements
    • Combining relational operators
    • Using conditions
  • Code blocks
  • Exercises
    • Install Nemerle
    • Exercise 1
    • Exercise 2
Week 1
  • Class definitions
    • Modifiers
      • Side note: mutability
      • Accessing instance vs. static members
    • Custom attributes
    • Methods
    • Fields
    • Instance constructors
      • The [Record] macro
      • Default constructor
    • Example
      • A little prize: string interpolation
      • Some loops
    • More about classes!
      • Static constructors
      • Properties
        • The [Accessor] macro
      • Inheritance and virtual calls
        • Abstract methods
      • Modules
    • Type conversions
    • Exercises
      • Exercise 1
      • Exercise 2
      • Exercise 3
      • Extra Exercise
Week 2
  • Introduction to Functional Programming
Local functions Passing functions as parameters Lexical scoping
  • Lists
    • Pattern matching
      • The wildcard pattern
      • Literal patterns
      • List patterns
      • Variable patterns
    • Simple list manipulation
      • Filter
      • Side note: anonymous functions
      • First N
    • Types and Generics
      • Parametric types
      • Function types
      • Generic functions
      • Side note: names of generic parameters
    • Exercises
      • Exercise 1
      • Exercise 2: iterators
      • Exercise 3: flatten
      • Exercise 4: SW again
Week 3
  • Tuples
    • Tuple pattern
    • Tuple indexer
      • Indexing rules
    • Tuple type
    • Side note: relationship between tuple and function types
    • Side note: tuple assignment
  • Variants
    • Matching over variants
    • Using variants as trees
    • XML trees
    • Side note: skipping match
  • Exercises
    • Exercise 1: Tree.Iter
    • Exercise 2: XML parsing
Week 4
  • Advanced pattern matching
    • Type check pattern
    • Record pattern
    • as pattern
    • Type hint pattern
    • Alternative clauses
    • with clauses
  • Performance considerations
    • Tail calls vs loops
    • Programming with accumulators
      • Reverse list
      • Length of list
    • Fold
    • Side note: redefining symbols
  • Parametric polymorphism aka generics
    • Generic types (and immutable collections)
    • Generic methods
    • Generic specifier
      • For constructors
      • For methods
      • For types in static member references
    • Constraints on type variables
  • Excercises
    • One
    • Two
    • Three
Week 5
  • Namespaces and the using directive
  • Enums
    • Function parameters
    • Ref/out parameters
  • Named parameters
  • Operator overloading
  • Interfaces
  • Design by contract macros
  • Properties
  • Indexers
  • Delegates
  • Events
⚠️ **GitHub.com Fallback** ⚠️