What is the formal difference between passing arguments to functions in parentheses ()
and in braces {}
?
The feeling I got from the Programming in Scala book is that Scala’s pretty flexible and I should use the one I like best, but I find that some cases compile while others don’t.
For instance (just meant as an example; I would appreciate any response that discusses the general case, not this particular example only):
val tupleList = List[(String, String)]()
val filtered = tupleList.takeWhile( case (s1, s2) => s1 == s2 )
=> error: illegal start of simple expression
val filtered = tupleList.takeWhile{ case (s1, s2) => s1 == s2 }
=> fine.