Is President of Artima and one of the co-athors of the "Programming Scala" book. He is a respected expert on the topic of Java and Scala.
$ scala This is an interpreter for Scala. Type in expressions to have them evaluated. Type :help for more information. scala> After you type an expression, such as 1 + 2, and hit return: scala> 1 + 2 The interpreter will print: unnamed0: Int = 3
Monads are Elephants (An introduction to monads in Scala.)
Links:
[1] http://www.scala-lang.org/node/960#Ted
[2] http://www.scala-lang.org/node/960#Daniel
[3] http://www.scala-lang.org/node/960#Bill
[4] http://www.scala-lang.org/node/960#Dean
[5] http://www.scala-lang.org/node/960#James
[6] http://www.scala-lang.org/node/960#Joak
[7] http://www.scala-lang.org/node/960#Dave
[8] http://www.scala-lang.org/node/960#Sund
[9] http://www.scala-lang.org/node/960#Mario
[10] http://scala.sygneca.com/
[11] http://www.scala-lang.org/node/959
[12] http://www.scala-lang.org/node/197
[13] http://blog.objectmentor.com/articles/2008/08/03/the-seductions-of-scala-part-i
[14] http://blog.objectmentor.com/articles/2008/08/05/the-seductions-of-scala-part-ii-functional-programming
[15] http://blog.objectmentor.com/articles/2008/08/14/the-seductions-of-scala-part-iii-concurrent-programming
[16] http://www.artima.com/scalazine/articles/steps.html
[17] http://www.scala-lang.org/node/91#ide_plugins
[18] http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-1
[19] http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-2
[20] http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-3-methods-and-statics
[21] http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-4
[22] http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-5
[23] http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-6
[24] http://www.codecommit.com/blog/java/interop-between-java-and-scala
[25] http://www.ibm.com/developerworks/java/library/j-scala01228.html?S_TACT=105AGX02&S_CMP=EDU
[26] http://www.ibm.com/developerworks/java/library/j-scala02198.html?S_TACT=105AGX02&S_CMP=EDU
[27] http://www.ibm.com/developerworks/java/library/j-scala03268.html?S_TACT=105AGX02&S_CMP=EDU
[28] http://www.ibm.com/developerworks/java/library/j-scala04298.html?S_TACT=105AGX02&S_CMP=EDU
[29] http://www.ibm.com/developerworks/java/library/j-cobol.html?S_TACT=105AGX02&S_CMP=EDU
[30] http://www.ibm.com/developerworks/java/library/j-scala05298.html
[31] http://www.ibm.com/developerworks/java/library/j-scala06278.html
[32] http://www.ibm.com/developerworks/java/library/j-scala07298.html
[33] http://www.ibm.com/developerworks/java/library/j-scala08268.html
[34] http://www.ibm.com/developerworks/java/library/j-scala10248.html?S_TACT=105AGX02&S_CMP=EDU
[35] http://www.ibm.com/developerworks/java/library/j-scala11218.html?S_TACT=105AGX02&S_CMP=EDU
[36] http://www.ibm.com/developerworks/java/library/j-scala12228.html?S_TACT=105AGX02&S_CMP=EDU
[37] http://www.ibm.com/developerworks/java/library/j-scala02049.html?S_TACT=105AGX02&S_CMP=EDU
[38] http://www.ibm.com/developerworks/java/library/j-scala04109.html?S_TACT=105AGX02&S_CMP=EDU
[39] http://www.ibm.com/developerworks/java/library/j-scala05059.html?S_TACT=105AGX02&S_CMP=EDU
[40] http://www.ibm.com/developerworks/java/library/j-scala06029.html?S_TACT=105AGX02&S_CMP=EDU
[41] http://gleichmann.wordpress.com/2010/10/28/functional-scala-introduction/
[42] http://gleichmann.wordpress.com/2010/10/31/functional-scala-functions/
[43] http://gleichmann.wordpress.com/2010/11/08/functional-scala-functions-as-objects-as-functions/
[44] http://gleichmann.wordpress.com/2010/11/15/functional-scala-closures/
[45] http://gleichmann.wordpress.com/2010/11/21/functional-scala-comprehending-comprehensions/
[46] http://gleichmann.wordpress.com/2010/11/28/high-higher-higher-order-functions/
[47] http://gleichmann.wordpress.com/2010/12/05/functional-scala-lambdas-and-other-shortcuts/
[48] http://blogs.sun.com/sundararajan/entry/scala_for_java_programmers
[49] http://johlrogge.wordpress.com/2008/10/01/phasing-over-from-java-to-scala-retrospect-1/#more-102
[50] http://johlrogge.wordpress.com/2008/09/02/phasing-over-from-java-to-scala-pt-2-buildr/
[51] http://johlrogge.wordpress.com/2008/09/10/phasing-over-from-java-to-scala-pt-3-what-about-the-tests/
[52] http://johlrogge.wordpress.com/2008/09/14/phasing-over-from-java-to-scala-pt-4-writing-specs-with-specs/#more-80
[53] http://johlrogge.wordpress.com/2009/01/06/making-swt-shine-with-scala/#comment-150
[54] http://johlrogge.wordpress.com/2008/10/06/scala-nugget-pattern-matching-and-lists/
[55] http://johlrogge.wordpress.com/2009/01/14/drying-up-widget-creation/#more-143
[56] http://johlrogge.wordpress.com/2008/09/11/scala-nugget-implicits-to-make-java-blend-into-scala/
[57] http://www.coconut-palm-software.com/the_new_visual_editor/doku.php?id=blog:simplifying_swt_with_scala
[58] http://james-iry.blogspot.com/2007/08/kingdom-of-nerbs.html
[59] http://james-iry.blogspot.com/2007/08/martians-vs-monads-null-considered.html
[60] http://james-iry.blogspot.com/2007/09/monads-are-elephants-part-1.html
[61] http://james-iry.blogspot.com/2007/10/monads-are-elephants-part-2.html
[62] http://james-iry.blogspot.com/2007/10/monads-are-elephants-part-3.html