2010-01-01から1年間の記事一覧

無限リスト

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

RubyでGUI C#からRubyを呼び出す

IronRubyの1.0がリリースされたので、C#からRubyの呼び出しを試してみる。まず、C#のプロジェクトを作成。 formにtextboxとbuttonを一つずつ配置する。 デザイナのbuttonをダブルクリックしてForm1の編集画面へ。 編集前に、参照設定にIronRuby/bin下の Iron…

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

前エントリーで「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プラグインは知らんけど)そして、…