trait つかって処理をついか
汎用的な def の処理を trait にしておいて 必要時に with で取り込んで実行する object hoge1 { def main(arg: Array[String]) { println("へロー") } } もとはこれです。 これに trait つかって trait に定義されている関数を使用します。 実行結果 ======= [info] Running hoge1 へロー 共通1
seen from United States

seen from Türkiye

seen from Saudi Arabia
seen from Germany

seen from Singapore
seen from Australia
seen from Yemen
seen from Japan

seen from United States
seen from United States

seen from Singapore
seen from Japan
seen from United States
seen from United Kingdom

seen from Singapore
seen from United States

seen from Germany
seen from Spain
seen from United Kingdom
seen from Australia
trait つかって処理をついか
汎用的な def の処理を trait にしておいて 必要時に with で取り込んで実行する object hoge1 { def main(arg: Array[String]) { println("へロー") } } もとはこれです。 これに trait つかって trait に定義されている関数を使用します。 実行結果 ======= [info] Running hoge1 へロー 共通1

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
# コンソールから入力について コンソールから 入力を得る方法 この方法がスマートに思える Iterator.continually(Console.readLine).takeWhile(_ != "").foreach(line => println("read " + line)) しかし、この方法だと すべての入力が終わって、改行のみの入力が行われるまで foreach に処理が進まない。 普段はそれでいいが、キー入力の度に 処理を行いたいような場合には適さない その場合は object ScannerTest { def main(args: Array[String]) { var ok = true while( ok ) { val ln = readLine() ok = ln.length != 0 if( ok ) println( ln ) } } } の方法が使える
ローンパターンを使ってみる
## Scala のローンパターンの例 ローンパターンを使ったサンプル。 これはこれで 書き方として覚えておけばいいかな
# sbt-assembly plugin について [https://github.com/sbt/sbt-assembly](https://github.com/sbt/sbt-assembly) これを使うと 依存関係で使っているものすべてを一つのjar にまとめてくれる。 ## いいこと すべて入った jar ファイルになるので、Scala の入ってないところでも java が入っていればプログラムを実行可能になる。 ### build.sbt に追加する import AssemblyKeys._ seq(assemblySettings: _*) // 実行するメインクラスを指定する場合 mainClass in assembly := Some("com.github.takuya71.scrapingmoneykit.Main") ### project/plugins.sbt resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns) addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.8.3") ## 実行 sbt のプロンプトで assembly を実行すると target の下にjarファイルが作成される。 作成された jar ファイルは結構大きい # java -jar hogehoge.jar Main とかで実行可能に。 ### 上記のメインクラスを指定していると # java -jar hogehoge.jar
zipWithIndex
zipWithIndex について ================= List を インデックス付きにする。 scala> List("a","b","c","d").zipWithIndex res4: List[(java.lang.String, Int)] = List((a,0), (b,1), (c,2), (d,3)) こうすると 一気に List("a","b","c","d","e").zipWithIndex.map{t => (t._2 + 1, t._1)}.foreach(println(_)) ## foldLeft を使って要素 を計算 リストの内容 * インデックス の値を足し合わせる 0 * 0 + 10 * 1 + 20 * 2 + 30 * 3 を実行 scala> List(0, 10, 20, 30).zipWithIndex.map{t => (t._1 * t._2)}.foldLeft(0)(_ + _) res20: Int = 140

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
vim の Scala カラースキーマを使う
VimでScalaのカラースキーマを使う
前提
Max OSX Lion に Homebrew で Scala をインストールしています。 Scala 2.9.1 には vim 用のカラースキーマが付いています。
コピーするファイル
cd /usr/local/Cellar/scala/2.9.1/libexec/misc/scala-tool-support/vim /usr/local/Cellar/scala/2.9.1/libexec/misc/scala-tool-support/vim% ls README ftdetect indent plugin syntax
ここの4つのフォルダを ~/.vim/ にコピー 詳細は READMEに書いてます。
その後 ~/.vimrc にを追加する。
.vimrc
syn on
これだけ
なんで 2.9.2 のディレクトリには入ってないのかな。。。
テキストファイルからキーワードに一致する行を読み込み
テキストファイルを読み込みキーワードに一致する行を出力するサンプル
Scala 実践プログラミングの grep の記事を参考にしたバージョン
引数に ファイル と 正規表現 を指定する。
引数 - -f ファイル名 - -e 正規表現パターン
foldLeft と foldRight
foldLeft と foldRight の例
foldLeft と foldright 使い方忘れちゃうので メモ