#ScalaTips
Explore tagged Tumblr posts
asadmukhtarr · 1 month ago
Text
https://asadmukhtar.info/note/programming-in-scala
Introduction to Scala
Scala is a modern programming language that combines object-oriented and functional programming features.
It runs on the JVM (Java Virtual Machine), making it highly compatible with Java.
Scala is concise, expressive, and designed for scalability in software development.
2 notes · View notes
takuya71 · 13 years ago
Text
trait つかって処理をついか
汎用的な def の処理を trait にしておいて 必要時に with で取り込んで実行する object hoge1 { def main(arg: Array[String]) { println("へロー") } } もとはこれです。 これに trait つかって trait に定義されている関数を使用します。 実行結果 ======= [info] Running hoge1 へロー 共通1
0 notes
takuya71 · 13 years ago
Link
# コンソールから入力について コンソールから 入力を得る方法 この方法がスマートに思える 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 ) } } } の方法が使える
0 notes
takuya71 · 13 years ago
Text
ローンパターンを使ってみる
## Scala のローンパターンの例 ローンパターンを使ったサンプル。 これはこれで 書き方として覚えておけばいいかな
0 notes
takuya71 · 13 years ago
Link
# 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
0 notes
takuya71 · 13 years ago
Text
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
0 notes
takuya71 · 13 years ago
Text
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 のディレクトリには入ってないのかな。。。
0 notes
takuya71 · 13 years ago
Text
テキストファイルからキーワードに一致する行を読み込み
テキストファイルを読み込みキーワードに一致する行を出力するサンプル
Scala 実践プログラミングの grep の記事を参考にしたバージョン
引数に ファイル と 正規表現 を指定する。
引数 - -f ファイル名 - -e 正規表現パターン
0 notes
takuya71 · 13 years ago
Text
foldLeft と foldRight
foldLeft と foldRight の例
foldLeft と foldright 使い方忘れちゃうので メモ
0 notes