Another tour of Scala

 
 
 
 

Main Page

Viewing old version 7cb6af3ae48e46ba13183ebce0c4ae36786ff2a3; 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

You should be able to go through these in the order listed, with each building on previous topics. I’ve also linked to the original tour topics.

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. ScalaPropertiesnot in the official tour
  5. ScalaPackages
  6. ScalaTraits
  7. ScalaGenerics
  8. ScalaAnnotations
  9. 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. AbstractTypesnot abstract classes
  4. ExplcitlyTypedSelfReferences

Not Covered

There’s a few things that aren’t really covered by the tour (other than some basics, that are, at first glance, key to understanding what Scala can do for you.

  1. ScalaObject
  2. ActorsAndConcurrency
  3. JavaIntegration
  4. DuckTyping

Last Updated 08/07/2009 at 11:40:52 AM by davec

blog comments powered by Disqus