各種REPLの閉じ方

irb(Ruby) exit scala :q ghci(Haskell) :q nodejs Ctrl+D coffee Ctrl+D python quit()またはCtrl+D 統一しろよと・・・

最近読んだモナドに関する記事一覧

最近読んだモナドに関する記事一覧■絶対に理解出来ないモナドチュートリアル http://konn-san.com/prog/never-understood-monad-tutorial.html■モナドとはモナドである http://fumieval.hatenablog.com/entry/2013/06/28/224439■モナドの六つの系統[Functor …

Scalaでお手軽並列処理

parallel collectionを使う。 http://docs.scala-lang.org/ja/overviews/parallel-collections/overview.html scala> val l = List(1,2,3,4,5,6,7,8,9,10) l: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)scala> l.par.foreach(i => println(s"[${Threa…

ScalaでListのshuffle

scala.util.Randomを使う。 scala> scala.util.Random.shuffle(List(1,2,3,4,5)) res0: List[Int] = List(3, 5, 4, 2, 1)scala> scala.util.Random.shuffle(List(1,2,3,4,5)) res1: List[Int] = List(5, 4, 1, 2, 3)

UbuntuにSun Java 6u30を入れる

OracleがJavaのライセンスを変更したおかげで、 CanonicalがSun Javaのアップデートをできなくなったので、 新しいSun Javaを自分で入れる方法。 実行は自己責任で。 ネタ元はここ。 http://www.omgubuntu.co.uk/2012/01/canonical-reverse-java-uninstall-d…

ScalaでRubyのFile.joinみたいなのを実装

こんな感じで。 /** * 与えられた複数の文字列からファイルパスを作成する。 */ def createPath(pathes: String*): String = { import java.io.File pathes.foldLeft(""){(s, p) => (new File(s, p)).getAbsolutePath()} // ("" /: pathes){(s, p) => (new F…

ScalaのREPLでクラスパスを追加したい場合

■REPL開始時に読み込む方法 scala -cp /home/hoge/hoge.jar ■REPL実行中に追加する方法 :cp /home/hoge/hoge.jar

ScalaのListでインデックス付きの操作を行いたい場合

zipWithIndexを使う。 タプルに値とインデックスが入る。 val l = List("A", "B", "C") for(e <- l.zipWithIndex) yield e._2 + " : " + e._1 すると、List[java.lang.String] = List(0 : A, 1 : B, 2 : C)みたいになる。 ■追記 コメントいただきました。パ…

sbtでcommons-netのライブラリをダウンロードする

scalaアプリケーションでFTP操作をしたくなったので、 sbtでCommons Netを落とすための方法を調べてみました。 自分でjarをダウンロードしてlibディレクトリに入れればいいのですが、 mavenレポジトリからダウンロードも可能なので、そっちで試してみました…

sbt(simple-build-tool)でのScalaバージョンの変更方法

2.8.0.RC3で作成していたアプリを2.8.0に変えたくなったので、 sbtでバージョンを変える方法を調査。 まあ、ここ(http://code.google.com/p/simple-build-tool/wiki/Loader)に書いてるけど、 一応メモ。 $ sbt > ++ 2.8.0 > set build.scala.versions 2.8.0 …

Scalaとsbtでandroidを開発する場合の.ensimeのサンプル

androidアプリをScalaで開発しています。 Eclipseは使わず、sbt(http://code.google.com/p/simple-build-tool/)と android-plugin(http://github.com/jberkel/android-plugin)を使って、 emacs上で開発しています。 さらに、ensime(http://github.com/aemonc…