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

BrainF*ckインタプリタを作る(4)

今日で最後だ。のこりの命令「[」と「]」を実装した。 「[」と「]」を実装するには命令の列を行ったり来たりできなきゃいけない。はじめに考えたのは BrainF_ck と同じように,命令のリストと現在位置を示すポインタを持ったデータ型を定義することだった。 …

BrainF*ckインタプリタを作る(3)

入出力の命令「.」と「,」を実装した。 最初,よく考えもせずに出力する関数 bfPrint をこうした。 bfPrint bf = print $ bfValue bf確かにこれでこの関数自体はちゃんと動く。つまり1文字出力される。 *Main> bfPrint $ bfIncrement bfInitial Loading pac…

BrainF*ckインタプリタを作る

Wkikipediaの記事を読んだり,ダウンロードしたインタプリタをいじってるうちに,なんかちょっとできそうな気がしてきた。 目標は Hello world プログラムの実行だ。 まず,データを格納する配列(レジスタと呼ぶことにしよう)とポインタが必要だな。 data …

BrainF*ckインタプリタを作る(2)

今のままじゃテストするもの面倒なので,外部のファイルからプログラムを読み込めるようにした。 といっても手抜きで,命令列を頭から一直線に実行して無くなったら終わり。で,最後の状態を表示する。今のところはジャンプしたりはできないんだからこれでい…

BrainFuck(というプログラミング言語)

cf. どーんとやってみよう - BrainFuck で棒グラフなんというか,こんなプログラミング言語があったとは。 見た目にはこれがプログラムだとは思えないんだけど,Wkikipediaにはこうある。 処理系には十分なサイズのbyte型配列とその要素のひとつを指すポイン…

キミならどう書く 2.0 - ROUND 3 -

cf. キミならどう書く 2.0 - ROUND 3 -前のエントリでは話がBrainf*ck(一応伏せ字にする)にいっちゃったけど,こっちが本題。 まったくもって乗り遅れたけど書いてみた。 import System showStar :: Int -> IO () showStar n = do putStrLn $ (show n) ++ …

本物のプログラマはHaskellを使う

第2回が掲載されている。 けど ITproって会員にならないと記事一覧が見られないらしい。 せっかくだからこのエントリにリンクを作っておこう。 第1回 関数型プログラミングの世界へようこそ 第2回 多相型(ポリモーフィズム)への理解を深める 第3回 map…

用語の日英対応

『本物のプログラマはhaskellを使う』にでてきた用語の日英対応表をつくってみた。 こういうのは憶えておくと役に立つ,かも。 lazy evaluation 遅延評価,怠惰評価 functional programming 関数型プログラミング logic programming 論理型プログラミング pr…