2014-06-01から1ヶ月間の記事一覧
追記:見直すこと!! ここらで一度、ソースを整理することにした。 ついでにためてた宿題も片付けることに。 まずは、構文解析の章。 1.parseNumberの書き換え 1.do記法 parseNumber :: Parser LispVal parseNumber = do x <- many1 digit return $ (Number .…
評価器の作成 今回から評価器の作成に移る。 まず最初に引っかかるのが以下。 instance Show LispVal where show = showVal Show型クラスの中に、LispValを受け取ったときの動作を加えますよ、という意味合いらしいのだけど、どうやらこのあたりで型クラスに…
構文解析その2 前回は、基本的な関数の表現などをまとめた。 今回も続けて構文解析について進めていく。 既に10時間は経過している気がするけど、48時間で終わるのか! 何はともあれ、まずは以下の定義から。 data LispVal = Atom String | List [LispVal] …
HakellでSchemeを書く Haskellを覚えるのに、以下の48時間でSchemeを書こう、に挑戦することにした。 HaskellもSchemeも全く知らないところからのスタートでかなり無謀感漂う。 参考元:48時間でSchemeを書こう 構文解析 構文解析では、PerSecライブラリで…
Pascalのプログラミング文法を学ぶ機会があり、丁度良いのでこれを機に何か触れたことのない言語でPascalのコンパイラを作成しようと、 Haskellに手をだす事に相成りました。 ということで、HaskellでPascalのコンパイラを作成することを最終目標に、まずはH…