Scala

Scala コラッツの問題

友人へ コラッツの問題 - Wikipedia が面白かったのでScalaで書いてみよう!という記事。 Scalaをインストールしていなくても、Macユーザーの場合 $ brew install scala で一発でインストールできるので、実行してみよう! コラッツの問題 コラッツの問題は…

サーバー設定手順 5. JVM,sbtの設定

APIとしてplayframework製のサーバーを設定する例。 playframeworkはScala(もしくはJava)のライブラリであり、ScalaはJVM上で実行できる。 まず、JVMをインストールし、Scalaと、Scalaのビルドや実行を行うsbtをインストールする。 Java(OpenJDK)をインスト…

Scala クラスの自作の練習(Time, Duration, TimeRange)

プログラム内で下記のような計算を多く記述するとします。 ある人は08:00に移動を開始する 移動先への所要時間は1時間30分かかる 移動先には09:00~11:00の間に到着しなければならない この場合、移動が間に合うかを判定する 上記には、時間に関連する内容に…

Scala : Play JSONを使う

前回のApache Commons CSVでのCSVの処理 mi12cp.hatenablog.com に引き続き、今回はJSONを扱っていきます。 JSONのライブラリはplayframeworkに含まれるPlay JSONを用いることにしました。 playframeworkを用いなくても、これ単独でパッケージを追加すること…

Scala : Apache Commons CSVを使う

scala専用のcsvパーサーは特に公式にあるわけではないが、JavaのライブラリにApache Commons CSVがあるのでこれを使える。 Apache Commons CSVは他と比べ高機能な印象。メンテナンスも今後心配ないように思う。 他のCSVパーサーにはOpenCSVなどがある。OpenC…

Scala sbtを使う

Scalaで1ファイルだけのプログラムを書くだけなら、Javaのように $ scalac Main.scala $ scala Main もしくはソースファイルを直接 $ scala Main.scala などでも良いが、sbtを使うと色々便利。 sbtの用途は Scalaでプロジェクトを作る ライブラリを読み込む …

Scala 簡単な抽選システムを作る

前回Pythonで作った抽選システムと同様のことをScalaで書きました。 mi12cp.hatenablog.com pythonでプログラムを書くと、イミュータブルな書き方が出来なかったり、break文を利用してしまったりしてしまいます。 これらを排除してscalaで書き直すのが目的で…

Scala 重複順列

Scala 重複順列 よく使うのですが、ワンライナーで書くことは出来ないでしょうか。現状は下記 program object Main extends App { def duplicatePermutation[A](list: List[A], length: Int): List[List[A]] = { if (length == 1) { list.map(x => x :: Nil)…

Scala 数値をN進数として桁ごとに分ける

Scala 数値をN進数として桁ごとに分ける program object Main extends App { def divideDigits(num: Int, base: Int = 10): List[Int] = { def proc(num: Int, base: Int): List[Int] = { val quotient = num / base val remainder = num % base quotient ma…

Scala 参考になる本・記事

参考になる本・記事 『Scala スケーラブルプログラミング 第3版』 https://www.amazon.co.jp/Scalaスケーラブルプログラミング第3版-Martin-Odersky/dp/4844381490 言語の詳細について最も詳しい やや分量が多く通読するのが少し大変 『Scala 関数型デザイン…