||Organization of Programming Languages
Lambda calculus, Type theory, Formal semantics, Program analysis
- Haskell is statically typed - statically typed languages tend to
be safer since all types must be known at compile time or else the code
does not compile.
- Haskell infers types - based on the operators used in the code.
- Type classes in Haskell act as Java interfaces, not classes -
a typeclass defines some behavior (like comparing for equality,
comparing for ordering, enumeration) and then types that can behave
in that way are made instances of that typeclass.
- A function of type f :: [a] -> a is an example of polymorphism
- 'a' could be any type.
- Monads - how does a language that tries to have no side effects
deal with side effects that are necessary?
- MapReduce - how does a language take advantage of parallelism in the
architectures of systems in which it is used?