タグ

ブックマーク / ha-tan.hatenadiary.org (3)

  • HaskellぽいListライブラリ - Halu - 趣味的にっき

    Cohiはあまりにマニアックすぎるので、もう少しふつうの人を狙ってHaskellぽいListライブラリを作ってみようかと思います。こんな感じで使えるやつ。 include Halu p List[1, 2, 3] # => Halu::List::[1, 2, 3] p List[] # => Halu::EmptyList::[] p(List[1, 2, 3].map2 {|h| h * 2 }) # => Halu::List::[2, 4, 6] p(List[1, 2, 3].last) # => 3 p(List[1, 2, 3].append(List[4, 5, 6])) # => Halu::List::[1, 2, 3, 4, 5, 6] p(List[1, 2, 3].filter {|h| h % 2 == 1 }) # => Halu::List::[1, 3]

    HaskellぽいListライブラリ - Halu - 趣味的にっき
  • マップの通り抜け - 趣味的にっき

    http://ja.doukaku.org/30/nested/より。このRubyのプログラムをHaskellに移植してみました。 配列はとりあえずData.Arrayを使ってみました。HaskellのData.Arrayは、(Int, Int)もインデックスに使えます。二次元配列ぽく使えて便利。副作用がない代わりに全配列をコピーしています。たかだか幅×高さ回のコピーなので問題ないのかもしれませんが、おとなしく変更可能な配列を使った方がよかったかしら。 Haskell使うと大容量のデータとか副作用を前提としたデータ構造を如何に使うか悩みます。。。んー、この問題を関数型のアプローチで解くにはどんなデータ構造でアプローチするのがいいのでしょう。。。 module Main (main) where import Data.Array (Array, listArray, bounds, (!)

    マップの通り抜け - 趣味的にっき
  • 第13回Ruby勉強会@関西 - 趣味的にっき

    ちょっと遅刻しました。微妙に迷った(^^; 右上の写真は京都女子大学のバス停のところにあったサンタです。 Ruby初級者レッスン by okkezさん、ナツマさん フレッシュな雰囲気。 Taiyakiが焼き立てかどうか? privateのいいこと。内部的なデータは外から呼ばれたくない。 protectedはあまり使わないかも。 変数。@countと@@countとの違い。 名前空間。rubygemsでConfigクラスがかぶったー。 グローバル変数はよく考えてから使うこと!! Rubyで書いたプログラムのデバグ技術 池上大介さん デバグとは? バグを発見してつぶす。今日は発見のことについて。 要求仕様と実装のずれを見付ける。 Object ← action → result テスト駆動開発は略。 振舞(ふるまい)駆動開発RSpec紹介。テスト駆動開発よりはいい。 何か優れているか? ass

    第13回Ruby勉強会@関西 - 趣味的にっき
  • 1