Scala

Scalaでちょっとしたツールを作る

仕事で画像データ変換ツールが必要になった。 やりたいことは32bitカラーのpngファイルを16bitカラーの独自フォーマットへの変換。 元データはアルファ有無混在+アルファ情報のみの画像も有り。それらの情報も独自フォーマットのヘッダに持たせる。 処理的に…

無限リスト

某勉強会で『ふつうのHaskellプログラミング』を読んでいる。 4年前に読んだはずなのだが内容はすっかり忘れていた。身についていなかったということだろう。今回もそうなりそうだが、Scalaを使いこなす基礎知識が少しは得られそう。 今回の勉強会で、与え…

たらいまわし問題(遅延評価編)

前エントリーで「scalaの遅延評価は限定的scalaなので無理かも」と書いたけれど嘘でした。 Scala開眼の引数の遅延評価渡しを参考にしたらできました。 以下がソース。 package tarai import java.util.Calendar import scala.collection.mutable.Map object …

たらいまわし問題

Haskell本(ふつける)の読書会に参加。 遅延評価の項で、たらいまわし問題の処理速度をC,Javaと比較して遅延評価偉い!となっていたが、C,Javaでちょっと工夫すれば差は無いはず。 scalaで実装 // たらいまわし(普通) def tarai1(x:Int, y:Int, z:Int): I…

NetBeansとScalaで遊ぶ(パターンマッチ編)

前回の続き。 次のコードをステップ実行 val xy = (1, 2) // (a) val (x, y) = xy // (b) val abc = (1, 2, 3) // (c) val (a, b, c) = abc // (d) タプルを使った代入。 (b)を行った時点で、謎の変数temp1が登場。オブジェクトIDはxyと同じ。 (d)の代入を行…

NetBeansとScalaで遊ぶ(遅延評価編)

忙しくてしばらく使っていなかったScalaとNetbeans、新しいバージョンを入れてみる。 Netbeansが6.8、Scalaは2.8.0.RC2、Scalaプラグインがnb-scala-6.8v1.1.0rc2b。 ScalaのIDEサポートは、もう十分使えますね。(Eclipseプラグインは知らんけど)そして、…

バケツ問題

某プログラム勉強会で、お題が出たので解いてみる。 問題 水がいっぱい入ったバケツ一個と、空のバケツがいくつかあり、それぞれのバケツの容量は正確にわかっている。この状態から指定された容量を量りとる、最 小手数の手順を求めよ。 ただし ・バケツから…

切符問題

某プログラム勉強会で、お題が出たので解いてみる。 いくつかの正の整数と加算・減算・乗算 の3つの演算子(そして、括弧)を使って、ある別の正の整数を生成する方法を探し出すプログラムを書け。 例えば。{2,5,6,8}から10を生成する方法は、例えば (2+8)*(…

NetBeansのScalaサポート

久しぶりにScalaをいじってみた。かなり忘れていて愕然とする。ある程度の規模のアプリを書かないと身に付かないということか。 以前に使った時には使い物にならない感じだったNetbeansのScalaプラグインがだいぶ良くなっていた。 Netbeansが6.1の時には開発…

JJUG CCC

JJUG CCCに行って来た。 参加できなかったセッション Grailsセッション・Jruby on Railsセッション・ひがやすをさんのセッション等も聴きたかったけど、ちょっと余裕のない状態だったのでScalaのセッションだけ参加。 ひがさんのセッション「ITゼネコンをぶ…