higher-order functions polymorphic method
syntax parentheses
reduction rules expressions termination evaluation Boolean expressions
parameters functions
Option filter
return type best practices type inference
by-name if-else by-value conditional expressions termination evaluation
lookupswitch pattern matching tableswitch match expression switch
functions recursion