- Learn Scala Programming
- Slava Schmidt
- 202字
- 2021-06-10 19:35:51
Summary
Functions represent another side of the blend of object-oriented and functional features in Scala. They can be defined in a number of ways, including the partial application of methods, function literals, and partial functions. Functions can be defined in any scope. If a function closes over variables available in scope, it is called closure.
Polymorphic functions implement an idea similar to polymorphism in object orientation, but apply that idea for types of parameters and of the result. This is called parametric polymorphism. It is especially useful when defining functions accepting other functions as arguments, so-called higher order functions.
There are two ways to implement recursion and only tail-recursive functions are stack safe in the JVM. For the functions which cannot be made tail-recursive, there is a way to represent the call chain in the heap by encoding it as objects. This approach is called trampolining and it is supported in the standard library.
Functions are first-class values in Scala because they are implemented as anonymous classes extending FunctionN traits. This not only makes it possible to work with functions as with normal variables, but it also allows for the provision of extended function implementations with additional properties, for example, a PartialFunction.
- HornetQ Messaging Developer’s Guide
- TypeScript Essentials
- Python科學計算(第2版)
- 潮流:UI設計必修課
- Drupal 8 Configuration Management
- JavaScript入門經典
- Learning Continuous Integration with TeamCity
- Mastering Python Design Patterns
- JavaScript+jQuery網頁特效設計任務驅動教程
- Illustrator CS6設計與應用任務教程
- 大學計算機基礎實訓教程
- Mastering SciPy
- Test-Driven iOS Development with Swift
- Qt 5.12實戰
- 高質量程序設計指南:C++/C語言