Another tour of Scala

 
 
 
 

Main Page

Viewing old version d831f5fc818c2c38fc60fbb2f66b4ff23e6be2e9; View Current

Why

I find the tour of scala a nice idea, but wanted some more depth and real-world scenarios. I also thought that some comparisons to Java, as a means of justifying the Scala feature, would really demonstrate things more clearly. For introductory material, I really need an answer to the question “how does this make my life easier?”, in addition to a clear explanation and example.

I also thought it would be a bit more helpful to order the tour elements so that things flowed back better, as well as some introductory material that clears up some syntax that I found counter-intuitive the first time.

So, I’m going through each thing and trying to:

  • Order them sensibly, so previous topics support future ones
  • Create more real-world situations where a feature might be useful and not so many mathematical constructs.
  • Comment on my own thoughts as to the utility of the feature.

I’m also a Java programmer by trade, so a lot of the “justification” aspects that come to me are in comparison to Java.

The Tour

These are in a reasonable order to allow subsequent tour elements to build on previous ones, and to keep the learning curve at a reasonable level.

Basics

  1. ScalaBasics – this covers some syntactic things that might surprise you, as well as some very basic things about working with Scala (not in the tour)
  2. UnifiedTypes
  3. ScalaClasses
  4. ScalaPackages
  5. ScalaTraits
  6. ScalaGenerics
  7. ScalaAnnotations
  8. ScalaOperators

Intermediate

  1. ScalaFunctions
  2. PatternMatching
  3. FunctionCurrying – define a function that has received some of its parameters now, and will get the remainder later.
  4. CaseClasses – taking switch statements to a useful level.
  5. SealedClasses – tightening up CaseClasses.
  6. XmlLiterals
  7. ForComprehensions – don’t let the name confuse you; this is about Scala’s powerful for loop construct
  8. TypeBounds
  9. InnerClasses – you only thought they were basic.
  10. ImplicitConversions
  11. TypeDependentClosures – Closures in general discussed here, too.

Advanced

  1. ImplicitParameters
  2. TypeVariance
  3. AbstractTypes – not abstract classes
  4. ExplcitlyTypedSelfReferences

Last Updated 08/01/2009 at 02:47:52 PM by davec

blog comments powered by Disqus