[Scala][1] is a general purpose programming language principally targeting the Java Virtual Machine. Designed to express common programming patterns in a concise, elegant, and type-safe way, it fuses both imperative and functional programming styles. Its key features are:
- Static typing
- Advanced type system with type inference and declaration-site variance
- Function types (including anonymous) which support *lexical closures*
- Pattern-matching
- Implicit parameters and conversions which support the *typeclass* and *enrich-my-library* patterns
- Mixin composition
- Full interoperability with Java
- Powerful concurrency constructs
- Advanced language constructs such as delimited continuations and an experimental macro system
For more information, see the official [Scala Introduction][2] and [Scala Documentation][3].
To search for Scala symbols such as "=>" in Code Review, you can use [symbolhound search](http://symbolhound.com/).
To search Scala documentation, you can use [Scalex](http://scalex.org/).
### Free Scala programming books and guides
* [Programming in Scala, First Edition](http://www.artima.com/pins1ed/)
* [Scala By Example](http://www.scala-lang.org/docu/files/ScalaByExample.pdf) (PDF)
* [A Scala Tutorial for Java programmers](http://docs.scala-lang.org/tutorials/scala-for-java-programmers.html)
* [Scala for Java refugees][4]
* [Scala School](http://twitter.github.com/scala_school/)
* [Scala Tutorials](http://scalatutorials.com/tour)
* [Scala Tour](http://www.scala-tour.com)
* [Scala for the Impatient](http://horstmann.com/scala/) (first part available for free at http://typesafe.com/resources/free-books)
Stack Overflow Scala Tutorial
=
0. Introduction to Scala
- [What's so great about Scala?][6]
0. Variables/values
- [Difference between `val` and `var`][7]
- [val-mutable versus var-immutable][8]
- [How to assign vals correctly?][9]
- [Multiple variable declarations][10]
- Lazy vals
- [What do they do?][11]
- [How are they implemented?][12]
- [Identifier rules][13]
0. Methods
- [Equal sign in methods][14]
- [Operator notation][15] and [the rules][16]
- [Multiple ways to define a method/function][17] ([leave parentheses in method calls][18])
- [Unary operators][19]
- [Multiple parameter lists][20]
- [Right-associative method names][21]
- Side effect free methods
- Missing parentheses at methods
- [Why no i++ in Scala?][22]
- [How to mix punctuation with alphanumeric characters in method names?][23]
- [Shortcut methods (`+=`, `-=`, `*=`, ...)][24]
- [List of "magic method" names][25] ([apply][26], unapply/unapplySeq, update)
- Named arguments / optional parameters
- [Type inference in return type][27]
- [Difference between `##` and `hashCode`][28]
0. Literals, statements and blocks
- Difference between block and statement
- [Weak conformance][29]
- [Symbols][30]
- [Difference between braces and parentheses][31]
- [Dereference keyword (backtick usage)][32]
- [Local definitions][33]
- [Uses of an underscore][34]
- [Identifier rules][35]
- [Punctuation (operator) overview][36]
0. Loops/recursion
- Loop
- [Simple loop][37]
- [Break out of a loop][38]
- [How to call a function x times][39]
- Tail recursion
- [What is tail recursion?][40]
- [How to write tail recursive code?][41]
- [Performance][42]
- [Optimization rules][43]
- [Trampolining][44]
0. Data structures / Collections
- [Collections design tutorial][45]
- [Collection standard practice][46]
- Immutable Collections
- [List][47]
- [Vector][48]
- [Range][49]
- [Tuple][50]
- Map
- Set
- Mutable Collections
- [Array][51] and [multi-dimensional Arrays][52]
- [Buffer][53]
- [How to use mutable Collections?][54]
- [Mutating a mutable collection using map?][55]
- Lazy Collections
- [Why are they needed?][56]
- [View][57]
- [Iterator][58]
- [Stream][59]
- [Streams vs Views vs Iterators][60]
- [Return a lazy collection][61]
- Parallel Collections
- [How do they work?][62]
- [Is is possible to change their behavior?][63]
- Conversions
- [Casting][64] and [ascription][65]
- [Java Collection to Scala Collection and vice versa][66]
- [Convert to another Collections][67]
- [breakout][68]
- [Memory footprint][69]
- [How are Scala collections able to return the correct collection type from an operation?][70]
0. For-comprehension
- [Explanation][71]
- [nested for-expressions][72]
- [Use `for` inside expressions][73]
0. Enumeration
- [Explanation][75]
0. Pattern matching
- Explanation
- [Value binding (`x @ X`)][76] / type binding (`x: X`)
- [How to do a multi-match][77]
- [Guards][78]
- [How to match variables or values?][79]
- [How is pattern match implemented under the hood?][80]
- [Exhaustive pattern][81]
- [Pattern match in for-expressions][83]
- [Ignore cases / no default value][84]
- [Conjunction][85]
- [Pattern match PartialFunctions][86]
- [Match Regex][87]
- [Pattern matching with more than one match][88]
0. Classes, objects and types
- [Difference between `class` and `object`][89]
- [Why is `object` a Singleton?][90]
- [Why are singleton objects more object-oriented?][91]
- [Companion objects][92]
- [Difference between `class` and `type`][93]
- [What's the difference between a class with a companion object and a class and object with the same name?][94]
- [Static initializer][95]
- [Constructor overloading][96]
- [Static data in non-objects][97]
- [How to get the static/runtime type of a class][98]
- [Type projection (`A#B`)][99]
0. Packages, imports and visibility identifiers
- Imports
- [Multiple imports / import renames / hide imports][100]
- [Shorthand imports][101]
- Local imports
- Packages
- [Nested packages][102] / [multiple package definitions][103]
- [Package objects][104]
- Visibility
- Explanation
- [Private constructors][105]
- [Private variables][106]
0. Inheritance
- Explanation
- [Early initializer][107]
0. Extractors
- [Explanation][108] (Example: [conjunctions][109])
- [Infix notation for type parameters][110] (`X[A, B]` => `A X B`)
0. Case classes
- [Explanation][111]
- [case classes vs. enums][112]
- [What are the disadvantages to declaring Scala case classes][113]
- [Compiler generated code for case classes][114]
0. Parameterized types
- How to declare them?
- [Upper / lower bounds][115]
- [Unify numerics][116]
- [How to get around type erasure?][117]
- [Abstract Types vs Generics][118]
- [Variances][119]
0. Traits
- [Usage][120]
- [Mixin multiple traits][121]
- [Traits vs abstract classes][122]
- [What does `trait A <: B` mean?][123]
- [Linearization][124]
- [Mixin a trait with overridden behavior][125]
- [Dynamic mixins][126]
- [How are they implemented under the hood?][127]
- [How to access one of multiple traits of superclass?][128]
0. Self references
- [Unify types][129]
- [Self reference naming][130]
- [Multiple self references][131]
- [Difference between self references and subtyping][132]
0. Error handling
- Exceptions
- Explanation
- [Stand-alone try block][133]
- [Ignore an exception][134]
- [Try-catch-generalization][135]
- Option
- [Explanation][136]
- Either
- [Explanation][137]
- [How to use them?][138]
- [What to use?][139]
0. Type handling
- [Context (`[A : B]`) and view bounds (`[A <% B]`)][140]
- Types
- [Non-Nullable type][141]
- [Existential type][142]
- Structural type ("duck typing")
- [Path-dependent type][143]
- [Union types (type disjunction)][144]
- [Monad type][145]
- [Compound type in structural type][146]
- [Compound type in self references][147]
- [Compound type in parameterized type][148]
- [Advantages of Scala's type system][149]
0. Annotations
- [What are they?][150]
- [How to use them?][151]
0. Functions/Function literals
- [Explanation][152]
- [Functions vs methods][153]
- [Pass functions][154]
- [Currying][155]
- [PartialFunction][156]
- [Placeholder syntax][157] and [their replacement rules][158]
- [Placeholder syntax with right-associative methods][159]
- [Difference between `=> Type`, `() => Type` and `Unit => Type`][160]
- [Functional Quicksort][161]
- [Keyword `return` in higher order functions][162] and [performance problem with that][163]
- [Function composition][164]
- [Closures in Scala][165]
0. Type safety
- Manifest
- [Explanation][166]
- [How do they work?][167]
- [Are Manifests possible in constructors?][168]
- [Generalized Type Constraints (`<:<`, `<%<`, `=:=`)][169]
- [Path-Dependent Types][170]
- [Enforce type difference][171]
- [Enforce no type bounds][172]
0. Implicits
- [Implicit definitions / parameters][173]
- [Implicit conversions / Monkey patching][174]
- [Identifier `implicitly`][175]
- [Where does Scala look for implicits?][176]
- [Should implicits used?][177]
- [Style of implicits][178]
- [Convert multiple values with one implicit conversion][179]
- [Chaining implicits][180]
0. Reflection
- [What is a TypeTag and how do I use it?][181]
- How to work with Reflection? <!-- no link yet -->
0. Enrich-my-library pattern (formerly known as pimp-my-library)
- [Explanation][182]
- [CanBuildFrom][183]
- [Returning original types while extending the Collection API][184]
0. [Concurrency overview][185]
0. Actors
- [Differences between Actor implementations][186]
- [Design Patterns][187]
- [Worst practices][188]
0. Use Java from Scala and vice versa
- [Iterate over Java collection][189]
- [Migrate Java to Scala][190]
- [Transparent conversions useful?][191]
- [Using Scala traits with implemented methods in Java][192]
- [How to work with javap for Scala/Java interop?][193]
- [Scala signatures][194]
- [How does `abstract override` work internally?][195]
0. XML literals
- Explanation
0. Scala Swing
- Explanation
- [Examples][196]
0. Type Programming
- [Overview][197]
0. Functional Scala
- [Is immutability expensive?][198]
- [Is Scala functional programming slower than traditional coding?][199]
- [OOP in a purely FP context?][200]
- Continuations
- [Explanation][201]
- [How to activate them?][202]
- [Design patterns for functional-oo hybrid languages?][203]
- [Type programming][204]
- [Higher kinded types][205]
- [Type lambdas (`SomeType[({type λ[α] = Either[A, α]})#λ]`)][205]
- [Virtual Classes][206]
- [`forall` in Scala][207]
Further learning
-
0. Learning Resources
- [How can I learn more about Scala's type relationships?][208]
- [Scala Cheat Sheet][209]
- [Good examples of idiomatic scala code?][210]
- [Solidifying Scala knowledge][211]
0. REPL
- [How does it work behind the scenes?][212]
0. Working with `scalac` and `scala`
- [Show syntax trees][213]
- [Meaning of `!#` (bang-pound) in a shell script?][214]
0. Operator precedence
- [Specification rules][215]
- [Actual scalac precedence implementation][216]
- [Understanding precedence rules in practice][217]
0. [Scala blogs to follow][218]
0. Scala style
- [Scala Style Guide][219]
- [Elements of Scala Style][220]
- [Effective Scala][221]
0. [Functional Programming Principles in Scala][222], a free functional programming course on Coursera taught by Martin Odersky, the creator of Scala
0. [Principles of Reactive Programming][223], a free reactive functional programming course on Coursera taught by Martin Odersky, Erik Meijer, Roland Kuhn.
[1]: http://en.wikipedia.org/wiki/Scala_%28programming_language%29
[2]: http://www.scala-lang.org/node/25
[3]: http://docs.scala-lang.org
[4]: http://www.codecommit.com/blog/scala/roundup-scala-for-java-refugees
[5]: https://www.assembla.com/wiki/show/liftweb/Resources
[6]: http://stackoverflow.com/questions/727078/whats-so-great-about-scala
[7]: http://stackoverflow.com/questions/1791408/what-is-the-difference-between-a-var-and-val-definition-in-scala
[8]: http://stackoverflow.com/questions/11386559/val-mutable-versus-var-immutable-in-scala
[9]: http://stackoverflow.com/questions/4026564/scala-assigning-vals/4031369#4031369
[10]: http://stackoverflow.com/questions/1981748/declaring-multiple-variables-in-scala
[11]: http://stackoverflow.com/questions/7484928/what-does-a-lazy-val-do
[12]: http://stackoverflow.com/questions/3041253/whats-the-hidden-cost-of-lazy-val-scala
[13]: http://stackoverflow.com/questions/7656937/valid-identifier-characters-in-scala
[14]: http://stackoverflow.com/questions/944111/when-to-use-the-equals-sign-in-a-scala-method-declaration
[15]: http://stackoverflow.com/questions/1006967/scala-which-characters-can-i-omit/1014972#1014972
[16]: http://stackoverflow.com/questions/1181533/what-are-the-precise-rules-for-when-you-can-omit-parenthesis-dots-braces-fu
[17]: http://stackoverflow.com/questions/8303817/scala-9-ways-to-define-a-method
[18]: http://stackoverflow.com/questions/6643030/what-is-the-rule-for-parenthesis-in-scala-method-invocation
[19]: http://stackoverflow.com/questions/1991240/scala-method-operator-overloading
[20]: http://stackoverflow.com/questions/4915027/two-ways-of-currying-in-scala-whats-the-use-case-for-each/4916606#4916606
[21]: http://stackoverflow.com/questions/2827293/scala-operator-how-it-works
[22]: http://stackoverflow.com/questions/4520463/why-no-i-in-scala
[23]: http://stackoverflow.com/questions/3096517/do-methods-ending-with-have-a-special-meaning-in-scala
[24]: http://stackoverflow.com/questions/5074179/val-or-var-mutable-or-immutable
[25]: http://stackoverflow.com/questions/1483212/list-of-scalas-magic-functions
[26]: http://stackoverflow.com/questions/1223834/how-does-scalas-apply-method-magic-work
[27]: http://stackoverflow.com/questions/2209179/type-inference-on-method-return-type
[28]: http://stackoverflow.com/questions/9068154/what-is-the-difference-between-and-hashcode
[29]: http://stackoverflow.com/questions/3094380/what-is-the-concept-of-weak-conformance-in-scala
[30]: http://stackoverflow.com/questions/1324466/practical-examples-of-using-symbols-in-scala
[31]: http://stackoverflow.com/questions/4386127/what-is-the-formal-difference-in-scala-between-braces-and-parentheses-and-when-s
[32]: http://stackoverflow.com/questions/1793984/using-java-lib-with-scala-reserved-words
[33]: http://stackoverflow.com/questions/1284325/scala-equivalent-to-haskells-where-clauses/1284361#1284361
[34]: http://stackoverflow.com/questions/8000903/what-are-all-the-uses-of-an-underscore-in-scala
[35]: http://stackoverflow.com/questions/7656937/valid-identifier-characters-in-scala
[36]: http://stackoverflow.com/questions/7888944/scala-punctuation-aka-symbols-operators
[37]: http://stackoverflow.com/questions/6741787/how-would-i-translate-the-following-java-backward-counting-loop-into-scala
[38]: http://stackoverflow.com/questions/2742719/how-do-i-break-out-of-a-loop-in-scala
[39]: http://stackoverflow.com/questions/7530194/how-to-call-a-function-x-times-in-scala
[40]: http://stackoverflow.com/questions/1677419/does-scala-support-tail-recursion-optimization
[41]: http://stackoverflow.com/questions/3678569/how-to-recognize-what-is-and-what-is-not-tail-recursion
[42]: http://stackoverflow.com/questions/1373144/scala-list-recursion-performance
[43]: http://stackoverflow.com/questions/4785502/why-wont-the-scala-compiler-apply-tail-call-optimization-unless-a-method-is-fina
[44]: http://stackoverflow.com/questions/1025181/hidden-features-of-scala/2853836#2853836
[45]: http://stackoverflow.com/questions/1722137/scala-2-8-collections-design-tutorial
[46]: http://stackoverflow.com/questions/675381/scala-collection-standard-practice
[47]: http://stackoverflow.com/questions/1241166/preferred-way-to-create-a-scala-list
[48]: http://stackoverflow.com/questions/6928327/when-should-i-choose-vector-in-scala
[49]: http://stackoverflow.com/questions/2617513/scala-downwards-or-decreasing-for-loop
[50]: http://stackoverflow.com/questions/6884298/why-is-scalas-syntax-for-tuples-so-unusual
[51]: http://stackoverflow.com/questions/2481149/why-does-array0-1-2-array0-1-2-not-return-the-expected-result
[52]: http://stackoverflow.com/questions/2381908/how-to-create-and-use-a-multi-dimensional-array-in-scala-2-8
[53]: http://stackoverflow.com/questions/3368888/whats-the-best-way-to-create-a-dynamically-growing-a-array-in-scala
[54]: http://stackoverflow.com/questions/6909783/how-to-use-mutable-collections-in-scala
[55]: http://stackoverflow.com/questions/7184940/mutating-a-mutable-collection-using-map
[56]: http://stackoverflow.com/questions/4795724/why-is-filter-in-front-of-foldleft-slow-scala
[57]: http://stackoverflow.com/questions/3361478/scala-what-are-views-for-collections-and-when-would-you-want-to-use-them
[58]: http://stackoverflow.com/questions/1527962/difference-between-iterator-and-stream-in-scala
[59]: http://stackoverflow.com/questions/2096876/use-cases-for-streams-in-scala
[60]: http://stackoverflow.com/questions/5159000/stream-vs-views-vs-iterators
[61]: http://stackoverflow.com/questions/4525435/is-it-posible-in-scala-to-use-yield-to-generate-iterator-instead-of-list
[62]: http://stackoverflow.com/questions/6329337/how-are-scala-2-9-parallel-collections-working-behind-the-scenes
[63]: http://stackoverflow.com/questions/6039380/how-do-i-replace-the-fork-join-pool-for-a-scala-2-9-parallel-collection
[64]: http://stackoverflow.com/questions/931463/scala-how-do-i-cast-a-variable
[65]: http://stackoverflow.com/questions/3412068/what-are-the-differences-between-asinstanceoft-and-o-t-in-scala
[66]: http://stackoverflow.com/questions/674713/converting-java-collection-into-scala-collection
[67]: http://stackoverflow.com/questions/3074118/scala-how-do-i-convert-a-mapint-any-to-a-sortedmap-or-a-treemap
[68]: http://stackoverflow.com/questions/1715681/scala-2-8-breakout
[69]: http://stackoverflow.com/questions/6243232/scala-collection-memory-footprint-characteristics
[70]: http://stackoverflow.com/questions/5200505/how-are-scala-collections-able-to-return-the-correct-collection-type-from-a-map-o
[71]: http://stackoverflow.com/questions/1052476/can-someone-explain-scalas-yield
[72]: http://stackoverflow.com/questions/2303826/how-can-i-iterate-a-list-of-lists-in-scala
[73]: http://stackoverflow.com/questions/2955370/why-cant-i-call-methods-on-a-for-yield-expression
[75]: http://stackoverflow.com/questions/1321745/scala-doesnt-have-enums-what-to-use-instead-of-an-enum
[76]: http://stackoverflow.com/questions/2359014/scala-operator/2359365#2359365
[77]: http://stackoverflow.com/questions/3222691/matching-and-binding-two-exception-classes-in-one-case-statement-in-scala-2-7
[78]: http://stackoverflow.com/questions/2266915/does-scala-have-guards
[79]: http://stackoverflow.com/questions/7078022/why-does-pattern-matching-in-scala-not-work-with-variables
[80]: http://stackoverflow.com/questions/754166/how-is-pattern-matching-in-scala-implemented-at-bytecode-level
[81]: http://stackoverflow.com/questions/4015144/scala-pattern-matching-keep-saying-match-is-not-exhaustive
[83]: http://stackoverflow.com/questions/4546786/how-to-simplify-this-for-code
[84]: http://stackoverflow.com/questions/5445163/is-there-a-way-to-ignore-a-non-matching-case
[85]: http://stackoverflow.com/questions/2261358/pattern-matching-with-conjunctions-patterna-and-patternb
[86]: http://stackoverflow.com/questions/7168026/how-is-match-word-omitted-in-scala
[87]: http://stackoverflow.com/questions/4636610/regex-and-pattern-matching-in-scala
[88]: http://stackoverflow.com/questions/7565599/pattern-matching-with-more-than-one-match
[89]: http://stackoverflow.com/questions/1755345/scala-difference-between-object-and-class
[90]: http://stackoverflow.com/questions/6541393/explanation-of-singleton-objects-in-scala-please
[91]: http://stackoverflow.com/questions/4112088/why-are-singleton-objects-more-object-orientated
[92]: http://stackoverflow.com/questions/609744/what-is-the-rationale-behind-having-companion-objects-in-scala
[93]: http://stackoverflow.com/questions/5031640/what-is-the-difference-between-a-class-and-a-type-in-scala-and-java
[94]: http://stackoverflow.com/questions/11604320/whats-the-difference-between-a-class-with-a-companion-object-and-a-class-and-ob
[95]: http://stackoverflow.com/questions/6265864/why-does-a-small-change-to-this-scala-code-make-such-a-huge-difference-to-perform
[96]: http://stackoverflow.com/questions/1095329/scala-constructor-overload
[97]: http://stackoverflow.com/questions/1516087/in-scala-how-would-you-declare-static-data-inside-a-function
[98]: http://stackoverflow.com/questions/1135248/scala-equivalent-of-java-java-lang-classt-object
[99]: http://stackoverflow.com/questions/6676048/why-does-one-select-scala-type-members-with-a-hash-instead-of-a-dot
[100]: http://stackoverflow.com/questions/2871822/how-do-i-exclude-rename-some-classes-from-import-in-scala
[101]: http://stackoverflow.com/questions/11621083/scala-shorthand-to-import-object-foo-and-trait-bar
[102]: http://stackoverflow.com/questions/2830248/what-are-nested-unnested-packages-in-scala-2-8
[103]: http://stackoverflow.com/questions/3541053/multiple-packages-definition
[104]: http://stackoverflow.com/questions/3400734/package-objects
[105]: http://stackoverflow.com/questions/1730536/private-and-protected-constructor-in-scala
[106]: http://stackoverflow.com/questions/6190617/how-can-i-create-a-read-only-class-member-in-scala
[107]: http://stackoverflow.com/questions/4712468/in-scala-what-is-an-early-initializer
[108]: http://stackoverflow.com/questions/2662984/what-are-all-the-instances-of-syntactic-sugar-in-scala/2670837#2670837
[109]: http://stackoverflow.com/questions/4008271/explain-this-pattern-matching-code
[110]: http://stackoverflow.com/questions/1025181/hidden-features-of-scala/4318422#4318422
[111]: http://stackoverflow.com/questions/2312881/what-is-the-difference-between-scalas-case-class-and-class
[112]: http://stackoverflow.com/questions/1898932/case-classes-vs-enumerations-in-scala
[113]: http://stackoverflow.com/questions/4653424/what-are-the-disadvantages-to-declaring-scala-case-classes
[114]: http://stackoverflow.com/questions/4526706/what-code-is-generated-for-an-equals-hashcode-method-of-a-case-class
[115]: http://stackoverflow.com/questions/7759361/what-does-b-a-do-in-scala
[116]: http://stackoverflow.com/questions/4709571/scala-parameterized-methods-and-arithmetic-operations
[117]: http://stackoverflow.com/questions/1094173/how-do-i-get-around-type-erasure-on-scala-or-why-cant-i-get-the-type-parameter
[118]: http://stackoverflow.com/questions/1154571/scala-abstract-types-vs-generics
[119]: http://stackoverflow.com/questions/663254/scala-covariance-contravariance-question
[120]: http://stackoverflow.com/questions/1229743/scala-traits-usage
[121]: http://stackoverflow.com/questions/1084572/mixing-multiple-traits-in-scala/1084716#1084716
[122]: http://stackoverflow.com/questions/1991042/scala-traits-vs-abstract-classes
[123]: http://stackoverflow.com/questions/2123663/what-does-trait-a-b-mean
[124]: http://stackoverflow.com/questions/7230808/inheriting-a-trait-twice
[125]: http://stackoverflow.com/questions/1025181/hidden-features-of-scala/7105405#7105405
[126]: http://stackoverflow.com/questions/3254232/dynamic-mixin-in-scala-is-it-possible
[127]: http://stackoverflow.com/questions/2557303/how-are-scala-traits-compiled-into-java-bytecode
[128]: http://stackoverflow.com/questions/7526653/how-to-access-one-of-multiple-traits-of-superclass
[129]: http://stackoverflow.com/questions/932701/scala-two-methods-different-parameter-types-but-same-code-how-to-unify
[130]: http://stackoverflow.com/questions/4017357/difference-between-this-and-self-in-self-type-annotations
[131]: http://stackoverflow.com/questions/4355060/are-multiple-self-types-possible
[132]: http://stackoverflow.com/questions/1990948/what-is-the-difference-between-scala-self-types-and-trait-subclasses
[133]: http://stackoverflow.com/questions/1547465/what-does-scalas-try-mean-without-either-a-catch-or-finally-block
[134]: http://stackoverflow.com/questions/3960327/how-to-ignore-exception
[135]: http://stackoverflow.com/questions/7788803/what-are-the-use-cases-for-scala-2-9s-try-catch-generalization
[136]: http://stackoverflow.com/questions/2079170/why-optiont
[137]: http://stackoverflow.com/questions/1585395/using-comparison-operators-in-scalas-pattern-matching-system
[138]: http://stackoverflow.com/questions/7131076/whats-the-deal-with-all-the-either-cruft
[139]: http://stackoverflow.com/questions/6891018/better-to-return-none-or-throw-an-exception-when-fetching-url
[140]: http://stackoverflow.com/questions/4465948/what-are-scala-context-and-view-bounds
[141]: http://stackoverflow.com/questions/1522367/library-support-for-scalas-notnull-trait
[142]: http://stackoverflow.com/questions/1031042/scalas-existential-types
[143]: http://stackoverflow.com/questions/2693067/what-is-meant-by-scalas-path-dependent-types/2694607#2694607
[144]: http://stackoverflow.com/questions/3508077/does-scala-have-type-disjunction-union-types
[145]: http://stackoverflow.com/questions/2322783/how-to-add-tracing-within-a-for-comprehension/4871353#4871353
[146]: http://stackoverflow.com/questions/1025181/hidden-features-of-scala/4311831#4311831
[147]: http://stackoverflow.com/questions/4355060/are-multiple-self-types-possible
[148]: http://stackoverflow.com/questions/1491283/how-do-i-setup-multiple-type-bounds-in-scala
[149]: http://stackoverflow.com/questions/3112725/advantages-of-scalas-type-system
[150]: http://stackoverflow.com/questions/3079603/scala-annotations-what-actually-is-that
[151]: http://stackoverflow.com/questions/2265773/how-do-you-define-an-interface-in-scala
[152]: http://stackoverflow.com/questions/2293592/functional-programming-scala-map-and-fold-left/2303291#2303291
[153]: http://stackoverflow.com/questions/2529184/difference-between-method-and-function-in-scala/2530007#2530007
[154]: http://stackoverflow.com/questions/2934568/why-does-scala-apply-thunks-automatically-sometimes
[155]: http://stackoverflow.com/questions/1550821/scala-anonymous-function-syntax
[156]: http://stackoverflow.com/questions/930698/why-is-partialfunction-function-in-scala
[157]: http://stackoverflow.com/questions/1025181/hidden-features-of-scala/1083523#1083523
[158]: http://stackoverflow.com/questions/2173373/scala-foreach-strange-behaviour
[159]: http://stackoverflow.com/questions/9436119/scala-inverse-result-while-escaping-underscore-with
[160]: http://stackoverflow.com/questions/4543228/whats-the-difference-between-and-unit
[161]: http://stackoverflow.com/questions/2341890/step-by-step-explanation-of-scala-syntax-used-in-wikipedia-quick-sort-example
[162]: http://stackoverflow.com/questions/6915701/is-non-local-return-in-scala-new
[163]: http://stackoverflow.com/questions/6146182/how-to-optimize-for-comprehensions-and-loops-in-scala
[164]: http://stackoverflow.com/questions/7683362/function-composition-of-methods-functions-and-partially-applied-functions-in-s
[165]: http://stackoverflow.com/questions/9842476/closing-over-the-loop-variable-in-scala
[166]: http://stackoverflow.com/questions/3213510/what-is-a-manifest-in-scala-and-when-do-you-need-it
[167]: http://stackoverflow.com/questions/3587286/how-does-scalas-2-8-manifest-work
[168]: http://stackoverflow.com/questions/7294761/why-is-the-manifest-not-available-in-the-constructor
[169]: http://stackoverflow.com/questions/3427345/what-do-and-mean-in-scala-2-8-and-where-are-they-documented
[170]: http://stackoverflow.com/questions/2693067/what-is-meant-by-scalas-path-dependent-types
[171]: http://stackoverflow.com/questions/6909053/enforce-type-difference
[172]: http://stackoverflow.com/questions/7781782/type-parameter-does-not-extend-given-type
[173]: http://stackoverflow.com/questions/1025181/hidden-features-of-scala/1093967#1093967
[174]: http://stackoverflow.com/questions/3119580/scala-equivalent-of-csharps-extension-methods/3119671#3119671
[175]: http://stackoverflow.com/questions/3855595/scala-function-implicitly
[176]: http://stackoverflow.com/questions/5598085/where-does-scala-look-for-implicits
[177]: http://stackoverflow.com/questions/1404889/scala-implicit-usage-choices
[178]: http://stackoverflow.com/questions/5984720/coding-with-scala-implicits-in-style
[179]: http://stackoverflow.com/questions/7235328/is-there-any-usage-of-implicit-function-with-several-parameters-in-scala
[180]: http://stackoverflow.com/questions/5332801/how-can-i-chain-implicits-in-scala
[181]: http://stackoverflow.com/questions/12218641/scala-2-10-what-is-a-typetag-and-how-do-i-use-it
[182]: http://stackoverflow.com/questions/5410846/how-do-i-apply-the-pimp-my-library-pattern-to-scala-collections/5411133#5411133
[183]: http://stackoverflow.com/questions/1721356/scala-2-8-canbuildfrom
[184]: http://stackoverflow.com/questions/10019529/function-which-generically-takes-a-type-and-returns-the-same-type
[185]: http://stackoverflow.com/questions/7969557/how-are-message-passing-concurrent-languages-better-than-shared-memory-concurren
[186]: http://stackoverflow.com/questions/5997018/whats-the-difference-between-the-different-actors-implementation-in-scala
[187]: http://stackoverflow.com/questions/3931994/design-patterns-best-practice-for-building-actor-based-system
[188]: http://stackoverflow.com/questions/1549251/scala-actors-worst-practices
[189]: http://stackoverflow.com/questions/2708990/whats-the-new-way-to-iterate-over-a-java-map-in-scala-2-8-0
[190]: http://stackoverflow.com/questions/3967683/migrating-java-to-scala
[191]: http://stackoverflow.com/questions/1519838/java-scala-interop-transparent-list-and-map-conversion
[192]: http://stackoverflow.com/questions/7637752/using-scala-traits-with-implemented-methods-in-java
[193]: http://stackoverflow.com/questions/9350528/how-to-work-with-javap-for-scala-java-interop
[194]: http://stackoverflow.com/questions/5587460/why-does-running-javap-on-a-compiled-scala-class-show-weird-entries-in-the-const
[195]: http://stackoverflow.com/questions/9476126/can-somebody-explain-how-abstract-override-works-in-terms-of-java-code
[196]: http://stackoverflow.com/questions/4515008/are-there-a-good-examples-of-using-scala-swing
[197]: http://stackoverflow.com/questions/4415511/scala-type-programming-resources
[198]: http://stackoverflow.com/questions/4101924/functional-programming-is-immutability-expensive
[199]: http://stackoverflow.com/questions/2794823/is-scala-functional-programming-slower-than-traditional-coding
[200]: http://stackoverflow.com/questions/4113138/oop-in-a-purely-fp-context
[201]: http://stackoverflow.com/questions/1512930/what-are-scala-continuations-and-why-use-them
[202]: http://stackoverflow.com/questions/2683195/how-do-i-enable-continuations-on-scala-2-8-and-beyond
[203]: http://stackoverflow.com/questions/3084546/design-patterns-for-functional-oo-hybrid-languages
[204]: http://stackoverflow.com/questions/4415511/scala-type-programming-resources
[205]: http://stackoverflow.com/questions/6246719/what-is-a-higher-kinded-type-in-scala
[206]: http://stackoverflow.com/questions/3035807/what-can-i-do-with-virtual-classes
[207]: http://stackoverflow.com/questions/7213676/forall-in-scala
[208]: http://stackoverflow.com/questions/7782286/how-can-i-learn-more-about-scalas-type-relationships
[209]: http://docs.scala-lang.org/cheatsheets/
[210]: http://stackoverflow.com/questions/11359784/good-examples-of-idiomatic-scala-code
[211]: http://stackoverflow.com/questions/6525547/scala-example-to-help-solidify-book-knowledge
[212]: http://stackoverflow.com/questions/7655165/what-really-happens-behind-the-scala-runtime-repl-when-running-a-scala-program
[213]: http://stackoverflow.com/questions/9999664/how-to-examine-implicit-rich-conversions-and-implemented-traits-in-the-repl
[214]: http://stackoverflow.com/questions/10060419/what-is-the-meaning-of-bang-pound-in-a-sh-bash-shell-script
[215]: http://stackoverflow.com/questions/2922347/operator-precedence-in-scala
[216]: http://stackoverflow.com/questions/7618923/actual-precedence-for-infix-operators-in-scala
[217]: http://stackoverflow.com/questions/8266401/the-method-execution-puzzle-in-scala
[218]: http://stackoverflow.com/questions/1445003/what-scala-blogs-do-you-regularly-follow
[219]: http://stackoverflow.com/questions/3718674/scala-coding-styles-and-conventions
[220]: http://stackoverflow.com/questions/1281977/elements-of-scala-style
[221]: http://twitter.github.com/effectivescala/
[222]: https://www.coursera.org/course/progfun
[223]: https://www.coursera.org/course/reactive