Ben Chuanlong Du's Blog

It is never too late to learn.

sbt Plugins for Deployment

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

  1. sbt Assembly is recommended, generally speaking.

sbt-assembly

sbt-assembly creates a fat JAR, i.e., a single JAR file containing all class files from your code and libraries. By evolution, it also …

Null, None and Alike in Scala

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

Nil represents an emptry List of anything of zero length. It is not that it refers to nothing but it refers to List which has no contents. In other words, Nil …

Line Continuation in Scala

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

Scala does not have a line continuation character. It infers a semicolon always when:

  1. an expression can end

  2. The following (not whitespace) line begins not with a token that can start …

Recursion in Scala

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

Tricks to Write Tail Recursive Calls

  1. A useful trick to write tail recursive function is to include the result to return as a parameter. If the result to return is a …

Issues in Scala

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

2.12

  1. Avoid using view of collections.

2.11

  1. Iterator ++ non lazy, might cause stack overflow issues. This issue has been fixed in 2.12.

  2. Stream.filterNot, not lazy, might cause …

Unit Test for Scala

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

  1. Both ScalaTest and spec2 are good unit testing frameworks. ScalaTest is more flexible is recommended.

ScalaTest

only assert is supported.

assert(expr1 === expr2, optional_msg)

The JUnit methods assertTrue, assertEquals and assertArrayEquals …