小説の画像を文字認識できんかなと思いぐぐってみたらGoogle先生が文字認識ライブラリをオープンソースで提供なさっているので試してみました。インストールはいつものごとくhomebrewを利用しました。コマンドラインを開き、 brew install tesseract インス…
Slickを使った実装例。 今回はTypesafeが提供しているActivatorを利用しながら開発してみる Slick Typesafe Activator – Typesafe Reactive Platform - Typesafe まずはActivatorをダウンロードし、フォルダの中にあるactivatorファイルをクリック。 しばら…
Play Framework2.2まではデータベースにAnormを基本的に採用してた。しかし、それがかわるんどす! →Playとは... http://www.playframework-ja.org/documentation/2.1.5/Home →Anormとは... ScalaAnorm Anormは最近のORM(抽象度の高い手法)とは違いSQLをそ…
ポリモーフィズムに関してJavaとScalaは若干違いがあります。 それはInterfaceがScalaには存在しないということです。 ん、じゃあポリモーフィズムはないの?? →代わりにTraitという、classとinterfaceの中間みたいなやつが存在します。 このtraitをScalaで…
今日はコレクションのひとつであるlistについてです。 import scala.collection.mutable.ListBuffer object ListTest extends App { def printlist(listInt:ListBuffer[Int], listStr:ListBuffer[String])={ println(listInt) println(listStr) } //空のリス…
Javaプログラマ→Scalaへの道第7弾です!! 今回はJavaとScalaで結構違いがあるコンストラクタに関して。 基本コンストラクタ、補助コンストラクタ、親クラスのコンストラクタの3つについて説明(実質ただのコード笑)です。 //ParantCクラスを継承し親クラ…
Scalaにはstaticキーワード自体が存在しません(その代わりcase classというより便利なクラスは存在しますが)。 ですのでclassは基本的にインスタンス化しなくては使えません(case class以外)。 Javaではクラスは設計図だからインスタンスしてねーとかい…
今回はScalaでmatchingをします! といってもJavaでswitchを知っている方にはありきたりなので Javaとの違いだけちょろっと。 まず大きく違うのが、いろいろな型のマッチングが可能です。 コレクションもマッチングでき、型に応じた処理が簡単にできます。 …
Scalaではforが多機能です。 object For extends App { //0~4を表示.5は表示されない for(i<-0 until 5){ println(i) } println("change") //1~5を表示。今度は5が表示される for(i<-1 to 5){ println(i) } println("change") //5~1を表示。順番が逆。 for(i…
アクセス修飾子についてです。 javaではこれを省略した場合同じパッケージ階層からアクセス可能でしたけど、 scalaでは省略=publicとなり記述が楽になりました。scalaのアクセス修飾子は以下の順になっています。 省略;=public ↓ protected[package name];…
前回に引き続きJava→Scalaの学習を進めたいと思います。 今回は関数の違いとimportのやり方をちょろっと。 メモなのでかなり雑です。はい。 package test import java.io._; object Test2 extends App { //可変長引数を取る関数 def printStrings(strings:St…
JavaとScalaの違いにフォーカスしながらScalaを学んでいきたいと思います。 かなりありますが、まずはobjectでしょうか。 下のプログラムをみたらすぐわかるのですが、Scalaではシングルトンオブジェクトを簡単に生成できるのです!!通常javaではシングルト…
以前Courseraという大規模オンライン学習Webサービスとそこで受講できる、関数型プログラミングの授業をご紹介しましたが引き続き面白そうな授業を発見しましたので紹介したいと思います。 今回は、Stanford Universityが提供しているMachine Learning(機械…
唐突ながらCourseraというMOOC(Massive Open Online Courses)のウェブサービスをご存知でしょうか?世界中の多くの難関大学がその授業をオンラインで無料でCourseraに提供しており私たちは自由にそれらを受講することが出来る、というすばらしい代物です!!…
scalaからjavaの外部ライブラリを適当に使えないものかと思い、 以前ふれたvelocityを試してみます。 package test import java.io._; import org.apache.velocity._; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; im…
前回ソリティアを作ろうと思い立ち開発しているさなかでそうだ、WebSocketを使ってみよう!と決意し調べてみたら見事にはまったのでメモっておきます。Scalaは他の言語と比べてもその言語仕様も外部ライブラリも変更が頻繁にあるのでそこんとこではまりまし…
なんか最近ゲームしとらんなーとか思ってふとソリティアがしたくなったのでソリティアを作ろうと思います。ソリティアって打とうとすると粗リディアって打っちゃうのをなんとかしたい今日この頃。開発言語はScala一択で、Scala IDE for Eclipse, Play framew…
Play2フレームワークの開発フローについてまとめます。インストールなどは省略して、プロジェクト作成から。まずはターミナルを起動しプロジェクトを作成したいディレクトリに移ります。cd /Desktopその後playコマンドでプロジェクト作成。play new sampleす…
Webアプリケーションの開発となると気になるのがフレームワーク。 今回はJava&Scalaをネイティブサポートしているフルスタックフレームワークの、 Play Framework2について。PlayはRuby on Railsのような効率性を意識して作られており、「設定より規約」を…
関数型言語定番のimmutableなデータ構造がScalaのひとつの特徴ですが、今回はimmutableなデータの集まりであるコレクションとそれを扱う便利メソッドについてです(Javaではimmutableで変更不可なデータはfinalキーワードを用いて特別に定義していましたよね…
Scalaにはカリー化と部分適用という機能が備わっています。 まずはカリー化から。 カリー化とは、複数の引数を受け取る関数を一つの引数を受け取る関数の積み上げ形にすることです。もしくは、複数の引数を取る関数を一引数を取る関数のチェインにすると表現…
ScalaにはJavaにはない暗黙の型変換という機能があります。これはScalaに自動的に呼び出させることの出来る、型変換用の関数を定義できる機能です。 関数定義の最初に implicit というキーワードをつけて、この暗黙型変換関数を定義します。この関数は型変換…
Scalaでは関数の書き方がJavaとは異なる上、Javaよりもより強力な関数的機能が備わっています。まずは関数の定義の仕方から。Scalaでは記述方法がかなり柔軟なためいろいろあるのですが、代表的な書き方を二つほど。 def 関数名(引数の変数名:変数の型):戻り…
ScalaはJavaと比べてもいろいろな部分で簡潔です。その最たるものが型推論ではないでしょうか。 • 型推論;JavaではたとえばScannerクラスのインスタンスを作成し変数に入れる場合以下のように型を明示しなければなりませんでした。 Scanner sc=new Scanner(…
ちょっと話が飛んじゃって申し訳ないのですが今勉強中の並行処理についてまとめてみます。Scalaでは並行処理のためにいくつか選択肢があり、そのうちのひとつがActorです。ではさっそく試しにコードを書いていきます。メッセージを受け取りそれに対応した値…
Scala言語を利用するにあたってこれは必要じゃない??と個人的に思うもののインストールの仕方についてです。 というわけでScala言語、sbtというビルドツール、playというframework, 最後にScala IDE for eclipseをインストールしていきます。 僕はmac派な…
こんにちは、今日はScalaの特徴についてまとめていきます。そもそもScalaはScalable Languageの略で、規模の違いによる影響を最小限に抑えよう!として開発された言語のようです。以下、主な特徴を列挙してみました。 • 純粋オブジェクト指向=プリミティブ…
Scala初心者の方も、Java経験者の方もこんにちは。かく言う私もJava経験者でScala初心者ではありますが学んだことをつらつらと綴っていきみなさんのお役に立てたらと思います。それでは Hello Scala!!