Scala

Scala sbt 独自のTaskを定義してみる

sbtのタスク sbtを起動中とする。tasksと入力すると一覧がでる。 > tasks This is a list of tasks defined for the current project. It does not list the scopes the tasks are defined in; use the 'inspect' command for that. Tasks produce values. U…

Scala sbtのプラグインを使う

sbtのプラグインを使ってみる sbtには、sbtの機能を拡張するためのプラグインのしくみがある。ためしにつかってみる。sbtのプロジェクト作成とかはこちら Scala sbtのプロジェクト - kaishitaeiichiの日記プラグイン sbteclipse Play framework sbt-plugin s…

Scala sbtのプロジェクト

ビルドツール sbt 0.12のプロジェクトについてのメモ プロジェクトの作成と設定 ソースコードの作成とアプリの実行 ソースコードの作成 アプリの実行 jarの作成 sbtのタスク sbtのプラグインを使ってみる Scala sbtのプラグインを使う - kaishitaeiichiの日…

Scala Streamで無限に要素をもつコレクションをあつかう

Scala Standard Library 2.12.8 - scala.collection.immutable.Streamをつかうと、無限に要素をもつコレクションをあつかえるらしい。実際のところは、要素の生成を後回しにして、無限の要素があるかのようにふるまうということらしい。Javaだと、なつかしい…

scala.util.Randomで乱数を生成する。

1から10までのランダムな数をつくるのはどうやるんだろう。Scala Standard Library 2.12.8 - scala.util.Randomを見てみたが、おおむねjava.util.Randomとおなじか? scala> import scala.util.Random import scala.util.Random scala> val r = new Random r…

ScalaのcomposeとandThen

f(g(x))なのかg(f(x))なのかすぐにわすれちゃう。メモしておこう。 scala> val f = (x: Int) => 2 * x f: (Int) => Int = <function1> scala> val g = (x: Int) => x + 1 g: (Int) => Int = <function1> scala> f(g(1)) res9: Int = 4 scala> (f compose g)(1) res10: Int = 4 scal</function1></function1>…

Scalaで、パイプライン演算子 pipeline operator

Scalaで、F#のパイプライン演算子のようなものをつくりたい。とりあえずIntで書いてみたけどうまくいかないな。パイプのたびに()が入れ子になるのがじゃまだ。どうすればよいのだろう。うーん。再帰的な、なにかなんだろうか。 scala> val f = (x: Int) => 2…

Scala PartialFunction 部分関数

PartialFunction Scala Standard Library 2.12.8 - scala.PartialFunction Scaladocの例を見る限り、caseをつかうと、PartialFunctionを簡単に書けるのか。 caseで指定された限られた範囲で、部分的に関数を定義しているってことだろうか。 just another sca…

Scalaで文字化けせずにコンソールから日本語入力 Windows

Windowsで、scalaのREPLを利用しているとき、日本語を入力して取得したい場合は、Scala Standard Library 2.12.8 - scala.PredefのreadLineメソッドをつかう。 scala> val a = "xyz" a: java.lang.String = xyz scala> val b = "?「???ヘ" b: java.lang.String…

EclipseからPlayのソースコードを編集する

Play 2.0をScalaで、勉強中。EclipseからPlay 2.0のソースコードを編集するの以下の方法があった。play 2.0 in scala ide 2.0 · skyluc/SandBox Wiki · GitHub 必要なもの Play 2.0本体 Installing - 2.0 Scala + sbtの環境があれば、playを追加することもで…

Play framework リンク

本家Webサイト Play Framework - Build Modern & Scalable Web Apps with Java and Scala いろいろ refactor.scala · GitHub play scalaでOptionの値をチェーンさせた場合にどんどん入れ子になっていくのをキレイに書く方法

Scala Implicit Parameters 暗黙のパラメータ

Implicit Parameters A Tour of Scala: Implicit Parameters | The Scala Programming Language 例を見ると、関数の振る舞いを、型ごとに変えることができる仕組みということなんだろうか。 この例では、implicit objectとimplicit mのように、implicitをつ…

Scalaのビルドツールsbtを使ってみる

昼間、Twitterのタイムラインを眺めていたら、今日はScala会議という勉強会が開かれていたみたいだ。partake.inhttp://www.ustream.tv/channel/scala-kaigi Ustreamでも流れていたので、ちらっと見た。なんだか、おもしろそうな話題がたくさんだった。scala-…

Scala 例 for Listの読み込み + Listの生成

Scalaのforも、やっぱりListをイテレートするのにつかう。 くわえて、Listをつくる機能もある。このページはforだけ。Listそのものについては、こちら 別の日記 Scala 例 List - kaishitaeiichiの日記 Scaladoc Scala Standard Library 2.12.8 - scala.colle…

Scala 例 Unit Test 単体テスト

Scalaの単体テスト Scalaの単体テストは、すでにいくつかフレームワークがあるようだ。Contributed Libraries and Tools | The Scala Programming Language JUnit JUnitは、Scalaから当然のように使える。 EclipseからもJavaでかいたTestCaseと同じように実…

Scala 例 正規表現 regular expression

Scala 例 文字列 String

ScalaのStringについて、調べてみる。暗黙の型変換、implicit defの話題もある。ScalaのStringは、Javaのjava.lang.Stringそのもの。 scala> val a = "abcd" a: java.lang.String = abcd scala> a.getClass res14: java.lang.Class[_] = class java.lang.Str…

Scala 例 パターンマッチ pattern matching

Scalaの便利機能、パターンマッチを試してみる。パターンマッチは、条件分岐に使う。Scalaのパターンマッチ、"match-case"は、Javaの"switch-case"と見た目はちょっと似ているけれど、もうまったくの別物!パターンマッチは、HaskellやF#にもでてきた。おな…

Scala 例 Map

ScalaにもMapがある。 http://www.scala-lang.org/api/current/scala/collection/Map これの動作を確認してみる オブジェクトの生成と基本のメソッド java.util.MapとScalaのMapのメソッドの対応は、以下のようだ java.util.Map scala.collection.Map 説明 p…

Scala 例 クラスの書き方など基本

Scalaは、オブジェクト指向+関数型言語とのことなので、基本の半分は、オブジェクト指向のはず。 とりあえず、「Javaのあれは、Scalaのこれ」というのが知りたいな。 classとtrait(それにobjectとtypeもある) Javaでは class interface というものがあった…

Scala 例 List

REPLをつかって、ぼちぼち試してみる。関数型といわれるプログラミング言語はとにかくListの処理が充実している。Scalaでも、それは同じ。とりあえずの相棒は、Scala Standard Library 2.12.8 - scala.collection.immutable.Listこのページもっとも、Scalaの…

Scala 例 「へえっ?!」とおもったこと

関数もオブジェクト Scalaでは関数はオブジェクト扱い。 関数もひとつの型をもつことになる。(X) => Yといった型。() => Unitなど。 このあたりは、JavaでなくてJavaScriptとかRubyに似ている。scalaコマンドを実行して、REPLで試してみると、 scala> val f …

Scala 例 実行 Hello, World

インストールはこちら、 Scala 開発環境を準備する - kaishitaeiichiの日記 scalaコマンドにpathをとおすまで。 REPLでかんたんに実行 Javaとちがうのは、コンパイルしなくても、実行できるところ。コンソールにちびっと処理を書いて、実行しながら作業でき…

Scala リンク

本家 The Scala Programming Language ダウンロード Download | The Scala Programming Language インストール Redirecting… Permanently Setting PATH on Windows | The Scala Programming Language チュートリアル ScalaTutorial.pdf ScalaByExample.pdf h…

Scala 開発環境を準備する

インストール Windows まず、JavaのインストールJava SE Downloads - Sun Developer Network (SDN) Downloadを押下すると画面遷移 PlatformのselectボックスでWindowsを選択して、Continueを押下すると画面遷移 jdk-6u21-windows-i586.exeリンクをクリックJa…

Scala 本

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala) Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)作者: Martin Odersky,Lex Spoon、Bill Venners,羽生田栄一,長尾高弘出版社/メーカー:…

S-99のメモ

09 はじめて、自分から、foldRightを使えた気がする。 def compress4[T](list: List[T]): List[T] = { list.foldRight(list[T]()) { (e, folded) => folded match { case Nil => e :: folded case head :: _ => if (e == head) folded else e :: folded } } …