tags. ðJVM ðProgLang
ScalaãŸãšã
Scala éçºç°å¢
Emacs
è©äŸ¡æŠç¥
Scala ã¯éåžž Call-by-Value ã ã, =>ãçšããããšã§ Call-by-Name ã§è©äŸ¡ãã.
High-Order Fuuction
Function Type
The type A => B is the type of a function that takes an argument oftype A and returns a result of type B . So, Int => Int is the type of functions that map integers to integers.
ç¡å颿° (Annonimous Function)
(x: Int) ããã©ã¡ãŒã¿, x * x * x 㯠Body.
(x: Int) => x * x * x
ã«ãªãŒå
Data and Abstraction
trait
Java ã®ã€ã³ã¿ãŒãã§ãŒã¹ã¿ãããªãã®
class
Pattern Matching
æ¡ä»¶åå²ã®ããã®èšæ³. ãã, ãæ¡ä»¶åå²ã¯ match åŒ, if æã¯äžé æŒç®åããããã®å¢ã.
Java:
switch ( <ã»ã¬ã¯ã¿ãŒåŒ> ){
case å Žå : åŠç
...
}
Scala ã® match åŒ:
<ã»ã¬ã¯ã¿ãŒåŒ> match {
case ãã¿ãŒã³ => åŠç
...
}
Lists
Collections
Monad
ã¢ãããšã¯, 颿°åèšèªã§, åç §éææ§ãä¿æããªããæç¶ãåçãªèšè¿°ãããããã®æ çµã¿.
ã¢ãããçè§£ã§ããæ, æããã²ããã.
Rx
Reactive Programming ã®ããã® Scala ã©ã€ãã©ãª.
åæ° | è€æ° | |
---|---|---|
åæ | Try[T] | Iterable[T] |
éåæ | Future[T] | Observable[T] |
Try
äŸå€ããã€ããããã®ã¢ãã. A monad that handles exceptions.
Option åã®æŽŸç. Scala ã«ã¯äŸå€åŠçã®æžãæ¹ãšããŠã¯ã
- try, catch,finally
- Option å Try
ã®ïŒã€ããã.
Future
äŸå€ãšé å»¶æ±ãã¢ãã. A monad that handles exceptions and latency.
Future ã¯ãããæç¹ã«ãããŠå©çšå¯èœãšãªãå¯èœæ§ã®ããå€ãä¿æãããªããžã§ã¯ãã ã ãã®å€ã¯ããªãããã®èšç®çµæã§ããããšãå€ãã
ãã®èšç®ãäŸå€ãšãšãã«å€±æããå¯èœæ§ããããããFuture ã¯èšç®ãäŸå€ãæããå Žåãæ³å®ããŠäŸå€ãä¿æããããšãã§ããããã Future ãå€ãããã¯äŸå€ãæã€ãšããFuture ã¯å®äºãããšããã Future ãå€ãšãšãã«å®äºããå ŽåãFuture ã¯ãã®å€ãšãšãã«æåãããšãããFuture ãäŸå€ãšãšãã«å®äºããå ŽåãFuture ã¯ãã®äŸå€ãšãšãã«å€±æãããšããã
promise
ã¡ãŒã«ããã¯ã¹ã®ãããªãã®.
Iterable
Observable
Akka
References
ð»Functional Programming Principles in Scala - coursera
Scalaèšèªäœè ã®ãMartion OderskyçŽã ã®è¬çŸ©.
References
Effective Java ã® Scala ç. ãããã§æ¥æ¬èªã§ç¡æ.