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
- 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)
- UnifiedTypes
- ScalaClasses
- ScalaPackages
- ScalaTraits
- ScalaGenerics
- ScalaAnnotations
- ScalaOperators
Intermediate
- ScalaFunctions
- PatternMatching
- FunctionCurrying – define a function that has received some of its parameters now, and will get the remainder later.
- CaseClasses – taking switch statements to a useful level.
- SealedClasses – tightening up CaseClasses.
- XmlLiterals
- ForComprehensions – don’t let the name confuse you; this is about Scala’s powerful
forloop construct - TypeBounds
- InnerClasses – you only thought they were basic.
- ImplicitConversions
- TypeDependentClosures – Closures in general discussed here, too.
Advanced
- ImplicitParameters
- TypeVariance
- AbstractTypes – not abstract classes
- ExplcitlyTypedSelfReferences
Last Updated 08/01/2009 at 02:47:52 PM by davec
blog comments powered by Disqus
All Content by David Copeland is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.