Scala
https://gyazo.com/bd125ed3fa9a8add6714920bd57bee74
関数型プログラミングとOOPの融合を目指した言語
設計者はMartin Odersky氏
Scalaのロゴの赤い螺旋はMartin Odersky教授がいるスイス連邦工科大学ローザンヌ校の螺旋階段がモチーフらしい ref
JVM上で動作する
昔は.NET Framework上で動いていた
Javaのクラスを継承したりもできる
Scala 基本文法
ScalaのOption, Either, Try
ScalaのGenerics
ScalaのSealed
Repl
$ scala
:qで終了
実行
$ scala hoge.scala
コンパイルせずにインタプリタ的に実行
$ scalac hoge.scala
コンパイルしてHoge.classファイルを生成
これはJVM上で実行可能なファイル
コンパイルするためにはclassなどが必要
$ scala Hoge
.classファイルを実行
なんかよくわからんが$ java Hello$でも実行できるんか? ref 『実践Scala入門』.icon p.20
Scalaのlazy
valの前にlazyをつけると変数の初期化を初回のアクセス時まで遅延できる
なにがうれし?
ブロック文の最終行の値を束縛できるやつ
code:scala
lazy val lazyDate = {
println("Initializin a date value...")
new java.util.Date
}
関数と何が違う?
Dotty
scalaz
Cats
Scalaのmacro
https://docs.scala-lang.org/ja/overviews/macros/overview.html
入門
https://www.slideshare.net/SatoYu1ro/scala-36162790
https://qiita.com/tanish-kr/items/6d5336eaf5538404ea61
http://bach.istc.kobe-u.ac.jp/lect/ProLang/org/scala.html
https://scala-text.github.io/scala_text/
https://zenn.dev/j5ik2o/books/scala-book-0f190ca38c551a9def3f
Scalaの本
圏論
https://www.slideshare.net/100005930379759/scala-scala
世界一やさしい圏論勉強会
https://blog.uta8a.net/posts/2021-01-05-category/
/worlds-easiest-kenron
https://chatwork.connpass.com/event/200780/
https://criceta.com/category-theory-with-scala/
http://lab.astamuse.co.jp/entry/2019/05/08/114500
scala rust
https://employment.en-japan.com/engineerhub/entry/2019/09/05/103000
はてなの大規模リニューアルの話
https://qiita.com/kmizu/items/5667a3b274af8236349e
http://dwango.github.io/scala_text_previews/kmizu-patch-1/
https://labs.septeni.co.jp/entry/2019/12/06/120000
https://speakerdeck.com/taisukeoe/why-things-are-changed-in-scala3
Monad型クラス
http://steavevaivai.hatenablog.com/entry/2019/11/04/182457
http://steavevaivai.hatenablog.com/entry/2019/11/10/122711
http://labs.septeni.co.jp/entry/functional-brothers
Scalaを使っている企業
サービス
Apache Spark
GitBucket
#プログラミング言語