I would like to try to reinstate our beginner's program at PDXScala by starting each meeting with a short beginner talk, and scheduling full-length beginner talks several times a year. So here is a list of ideas. Please leave comments below and I will integrate them into the lists.
My personal interest is in teaching about the language itself, as well as functional programming in general. But there is also room for talks about tools and libraries. I will do the first one, but my hope is that others will chip in and agree to speak on easy topics for a few minutes.
These should be self-contained so the talk and discussion fits in a 30-minute slot. The talk itself should be no more than 15 minutes.
- foldLeft vs foldRight
- using Option
- 101 methods on List
- var, val, lazy val, def
- by-value, by-name DONE Mar 2015
- implicit classes?
- import hiding, import renaming DONE Mar 2015
- placeholder syntax .. what are the @$#*&^ rules?
- Nil, Null, null, Nothing, None, NaN DONE Feb 2015
- String interpolators DONE Mar 2015
These were specifically requested:
- traits, classes, case classes, objects
- packages, nested packages, package objects, compare w/ objects
- superclasses, mix-ins, self-types
- easy constraints like >: and <:
- companion objects (also talk about aliasing properly to get both the type and companion)
These are "main event" talks that will easily fill an hour and a half, including discussion. The talks itself should be no more than one hour.
- typeclasses
- for-comprehensions
- abstract types
- type constraints (we have done this one before)
- monads 102: reader, state
- options for newtyping: wrappers, value classes, tagged types ... contrast with type aliasing
A talk on the various ways to handle errors in in Scala.