Named and default arguments for polymorphic object-oriented languages
This article describes the design and implementation of named and default arguments in the Scala programming language. While these features are available in many other languages there are significant differences in the actual implementations. We present a design that unifies the most reasonable properties for an object-oriented language and provides new possibilities by allowing default arguments on generic and implicit parameters. We also present a solution for the problem of writing a lightweight generic update function for algebraic datatypes.