Statistical Programming

文字認識らいぶらり。。。tesseract!!

小説の画像を文字認識できんかなと思いぐぐってみたらGoogle先生が文字認識ライブラリをオープンソースで提供なさっているので試してみました。インストールはいつものごとくhomebrewを利用しました。コマンドラインを開き、 brew install tesseract インス…

Slick実装例

Slickを使った実装例。 今回はTypesafeが提供しているActivatorを利用しながら開発してみる Slick Typesafe Activator – Typesafe Reactive Platform - Typesafe まずはActivatorをダウンロードし、フォルダの中にあるactivatorファイルをクリック。 しばら…

Playのデータベース周りが変わります!

Play Framework2.2まではデータベースにAnormを基本的に採用してた。しかし、それがかわるんどす! →Playとは... http://www.playframework-ja.org/documentation/2.1.5/Home →Anormとは... ScalaAnorm Anormは最近のORM(抽象度の高い手法)とは違いSQLをそ…

JavaとScalaの違いその9 ... Trait>Interface

ポリモーフィズムに関してJavaとScalaは若干違いがあります。 それはInterfaceがScalaには存在しないということです。 ん、じゃあポリモーフィズムはないの?? →代わりにTraitという、classとinterfaceの中間みたいなやつが存在します。 このtraitをScalaで…

JavaとScalaの違いその8 ... arrayは使わない!Listコレクション

今日はコレクションのひとつである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への道第7弾です!! 今回はJavaとScalaで結構違いがあるコンストラクタに関して。 基本コンストラクタ、補助コンストラクタ、親クラスのコンストラクタの3つについて説明(実質ただのコード笑)です。 //ParantCクラスを継承し親クラ…

JavaとScalaの違いその6 ... Setter & Getter

Scalaにはstaticキーワード自体が存在しません(その代わりcase classというより便利なクラスは存在しますが)。 ですのでclassは基本的にインスタンス化しなくては使えません(case class以外)。 Javaではクラスは設計図だからインスタンスしてねーとかい…

JavaとScalaの違いその5 ... 最強、ぱた〜んまっちんぐうううう

今回はScalaでmatchingをします! といってもJavaでswitchを知っている方にはありきたりなので Javaとの違いだけちょろっと。 まず大きく違うのが、いろいろな型のマッチングが可能です。 コレクションもマッチングでき、型に応じた処理が簡単にできます。 …

JavaとScalaの違いその4 ... 多機能なfor

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の違いその3 ... アクセス修飾子はかなり省略

アクセス修飾子についてです。 javaではこれを省略した場合同じパッケージ階層からアクセス可能でしたけど、 scalaでは省略=publicとなり記述が楽になりました。scalaのアクセス修飾子は以下の順になっています。 省略;=public ↓ protected[package name];…

JavaとScalaの違いその2 ... Importがちょいと便利に

前回に引き続きJava→Scalaの学習を進めたいと思います。 今回は関数の違いとimportのやり方をちょろっと。 メモなのでかなり雑です。はい。 package test import java.io._; object Test2 extends App { //可変長引数を取る関数 def printStrings(strings:St…

JavaとScalaの違いその1

JavaとScalaの違いにフォーカスしながらScalaを学んでいきたいと思います。 かなりありますが、まずはobjectでしょうか。 下のプログラムをみたらすぐわかるのですが、Scalaではシングルトンオブジェクトを簡単に生成できるのです!!通常javaではシングルト…

機械学習入門

以前Courseraという大規模オンライン学習Webサービスとそこで受講できる、関数型プログラミングの授業をご紹介しましたが引き続き面白そうな授業を発見しましたので紹介したいと思います。 今回は、Stanford Universityが提供しているMachine Learning(機械…

Scalaの授業…

唐突ながらCourseraというMOOC(Massive Open Online Courses)のウェブサービスをご存知でしょうか?世界中の多くの難関大学がその授業をオンラインで無料でCourseraに提供しており私たちは自由にそれらを受講することが出来る、というすばらしい代物です!!…

ScalaからJavaのライブラリをつかう

scalaからjavaの外部ライブラリを適当に使えないものかと思い、 以前ふれたvelocityを試してみます。 package test import java.io._; import org.apache.velocity._; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; im…

もがく、WebSocket!!

前回ソリティアを作ろうと思い立ち開発しているさなかでそうだ、WebSocketを使ってみよう!と決意し調べてみたら見事にはまったのでメモっておきます。Scalaは他の言語と比べてもその言語仕様も外部ライブラリも変更が頻繁にあるのでそこんとこではまりまし…

Solitaireしたいな…

なんか最近ゲームしとらんなーとか思ってふとソリティアがしたくなったのでソリティアを作ろうと思います。ソリティアって打とうとすると粗リディアって打っちゃうのをなんとかしたい今日この頃。開発言語はScala一択で、Scala IDE for Eclipse, Play framew…

Play Framework入門

Play2フレームワークの開発フローについてまとめます。インストールなどは省略して、プロジェクト作成から。まずはターミナルを起動しプロジェクトを作成したいディレクトリに移ります。cd /Desktopその後playコマンドでプロジェクト作成。play new sampleす…

Scala Play Framework2とは…

Webアプリケーションの開発となると気になるのがフレームワーク。 今回はJava&Scalaをネイティブサポートしているフルスタックフレームワークの、 Play Framework2について。PlayはRuby on Railsのような効率性を意識して作られており、「設定より規約」を…

Scala immutableなコレクションと便利なメソッド

関数型言語定番のimmutableなデータ構造がScalaのひとつの特徴ですが、今回はimmutableなデータの集まりであるコレクションとそれを扱う便利メソッドについてです(Javaではimmutableで変更不可なデータはfinalキーワードを用いて特別に定義していましたよね…

Scala 関数のカリー化と部分適用

Scalaにはカリー化と部分適用という機能が備わっています。 まずはカリー化から。 カリー化とは、複数の引数を受け取る関数を一つの引数を受け取る関数の積み上げ形にすることです。もしくは、複数の引数を取る関数を一引数を取る関数のチェインにすると表現…

Scala 暗黙の型変換、implicit !?

ScalaにはJavaにはない暗黙の型変換という機能があります。これはScalaに自動的に呼び出させることの出来る、型変換用の関数を定義できる機能です。 関数定義の最初に implicit というキーワードをつけて、この暗黙型変換関数を定義します。この関数は型変換…

Scala 関数の書き方

Scalaでは関数の書き方がJavaとは異なる上、Javaよりもより強力な関数的機能が備わっています。まずは関数の定義の仕方から。Scalaでは記述方法がかなり柔軟なためいろいろあるのですが、代表的な書き方を二つほど。 def 関数名(引数の変数名:変数の型):戻り…

簡潔な記述のScala

ScalaはJavaと比べてもいろいろな部分で簡潔です。その最たるものが型推論ではないでしょうか。 • 型推論;JavaではたとえばScannerクラスのインスタンスを作成し変数に入れる場合以下のように型を明示しなければなりませんでした。 Scanner sc=new Scanner(…

Scala 並行処理のActorさん

ちょっと話が飛んじゃって申し訳ないのですが今勉強中の並行処理についてまとめてみます。Scalaでは並行処理のためにいくつか選択肢があり、そのうちのひとつがActorです。ではさっそく試しにコードを書いていきます。メッセージを受け取りそれに対応した値…

Scala開発環境構築

Scala言語を利用するにあたってこれは必要じゃない??と個人的に思うもののインストールの仕方についてです。 というわけでScala言語、sbtというビルドツール、playというframework, 最後にScala IDE for eclipseをインストールしていきます。 僕はmac派な…

Scalaとは…?

こんにちは、今日はScalaの特徴についてまとめていきます。そもそもScalaはScalable Languageの略で、規模の違いによる影響を最小限に抑えよう!として開発された言語のようです。以下、主な特徴を列挙してみました。 • 純粋オブジェクト指向=プリミティブ…

Hello Scala!

Scala初心者の方も、Java経験者の方もこんにちは。かく言う私もJava経験者でScala初心者ではありますが学んだことをつらつらと綴っていきみなさんのお役に立てたらと思います。それでは Hello Scala!!