定食屋おろポン

おろしポン酢と青ネギはかけ放題です

2014-01-01から1ヶ月間の記事一覧

HaskellのnubとRubyのuniq

HaskellのData.List#nubと、 RubyのArray#uniqは、どちらもリスト/配列内の重複要素を取り除いた新しい配列を返す関数です。 どうもHaskellのnubはRubyに比べてだいぶ遅いなあと感じます。 リストと配列のデータ構造の違いに起因するのだろうと想像はできま…

バーコードジェネレータをゆるーくRubyで

「IOモナド難しい..Rubyで書いたらゆるふわ楽勝なのに..」 とか前に書いてたので、ほぼ同様のコードをゆるーく書いてみました。 gist8574615 # => #MJDRYCAD #CKLKCQSW #CHJAQKSZ #YWASAYMI #UHVRVEWW #以下略 重複する可能性を考慮して、必要な数の2倍のコ…

Common Lisp初め

「おろポンくん、プログラミングできるの?」 僕「うーんどうだろう、少しは書けますね」 「じゃあWindowsのプログラムとか作れちゃう?」 僕「いや、Windowsはちょっと」 「分かったJavaだ」 僕「Javaは全く。。」 「なんだ、Web系?PHPとか?」 僕「PHPは…

バーコードのチェックサムとHaskellの練習

コンビニの商品にも、スーパーの商品にも、たいていの売り物にはバーコードがついていますね。 すだれハゲみたいなアレです。 http://ja.wikipedia.org/wiki/バーコード 日本の商品に使用されるバーコードは JANコード というもので、8桁あるいは13桁の数字…

Haskell勉強日誌 -エラなんとかの篩-

練習のため、素数判定で有名なエラなんとかの篩を実装しました。 エラなんとかの篩 13行目のx ^ 2が毎回評価されると実行速度に悪影響を与えそうですが、参照透明性のお陰で1度しか評価されていないハズですね。 reverseはコストが高い処理ですが、1回しか…

Haskell勉強日誌 -RPN電卓-

Haskellで逆ポーランド記法電卓。関数型言語らしい題材で練習してみる。 まずは普通に書いてみる。 最初は、Stackを定義してpopやpushを実装するべきかと考えたけど、強力なパターンマッチのおかげでシンプルに書けた。 単なるリストをスタックとして使用し…

ふつうのHaskell勉強日誌

ふつうのHaskellプログラミング 初版 p246 練習問題 9.6問題: 新しい型"Line"を定義し、sortLines関数でソートする Line型は`data Lines = Lines {number::Int, string::String} deriving Show`で定義されるように、行番号とテキストで構成されます。 問題で…