bussorenre Laboratory

hoge piyo foo bar

Scala

Scala で Functor っぽいものを実際に実装して挙動を追ってみる

こんにちは。 @bussorenre です。今日はScala です。 定型句となって恐縮ですが、「ここは表現がおかしい」とか「間違ってる」とか「もっとこうしたほうがいい」等ありましたら、Twitter で罵倒する前にコメントをいただけると凄く助かります。。。 はじめに…

Scala における末尾再帰

背景 S-99: Ninety-Nine Scala Problems 等の例題を説いていると、よく再帰による実装を見かけます。 確かに、 Scala関数型デザイン&プログラミング―Scalazコントリビューターによる関数型徹底ガイド | Paul Chiusano, Rúnar Bjarnason, 株式会社クイープ | …

Scala におけるパターンマッチ

今日もScala。明日もScala。明後日もScala // Scala におけるパターンマッチ <セレクター式> match { case 選択肢1 case 選択肢2 ...... } 上から順番に与えられた選択肢を評価し、最初にマッチしたもののみを実行する。break 文などは特に不要。 例1, Optio…

Scala におけるList の操作

Programming in Scala 第三版16章 リストの操作 言語によっても仕様が異なり混乱しやすいリスト。 Scala における 配列とリストの違いは リストはイミュータブルオブジェクトで、リストの要素は代入によって置き換えられない 内部的にはLinked List 配列と同…

Intelli J Idea でScalaを書く環境を整えてく(自分用)

業務用ということで、会社から Inteli J Idea を支給してもらった。この機会にぜひとも乗りこなしたい。 Emacs バインドをある程度使えるようにする Emacs使いのための IntelliJ IDEAキーマップ チートシート を参考にする。 Emacs+ Patched というプラグイ…

Scala における Unit型と副作用

C系とか Java 系みたいな、手続き型には無い(無くはないけどそんなに重要視されていない)概念に 作用と副作用がある。 関数型言語では、プログラムは値を返す存在とみなされる。 Programming in Scala においては 3.5 あたりに まずは、val、イミュータブ…

Hello world in Scala

どんな事もまずは世界に挨拶することから始まる。 Scala で 雑に Hello World を書くとこうなる。 object HelloWorld { def main(args: Array[String]): Unit = { println("Hello, Scala world!") } } 基本的にScala は Java class コードに変換されるので、…

(雑談) Scala はじめました

夏の暑い時期に冷やし中華を始めるラーメン屋の如く、私もScala をはじめました。 最低限の知識だけで、可能な限りJVMの世界を避けてきたのですが、ついに通らずにはいられなくなったのですが、幸い 素のJava6 とかじゃなくて、scala の世界で戦えるのでそれ…