--.--
--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

06.06
Thu
タイトル通りです。

Haskellみたいに便利な内包表記あったらいいなーと思いました

多分CLのloopマクロを黒魔術的用法で出来なくもないんだろうけど

見た目的にやばそうですね。iterateみたいなライブラリ使ったり[要出典]

Haskellライクな内包表記実現のためのマクロなんていっぱいありそうですが

まぁ、リードマクロの書き方のお勉強ということで書いてみました

なお、Haskellの内包表記のあまり詳しい使い方は知らないので実装は適当です

まずリードマクロについて

Lispのマクロの一種で、リード時に展開されます

OnLispのリードマクロの章の冒頭から引用しますと


LispのS式の生涯で重要な瞬間は3つ,
すなわち読み込み時,コンパイル時,実行時だ.
関数を操れるのは実行時だ.
マクロによりプログラムをコンパイル時に変換する機会が得られる.
この章ではリードマクロを扱うが,これは読み込み時に機能するものだ.


だそうです。はい

簡単に言ってしまうと、ある文字に対してそいつが読まれた時に別のものS式に展開されんですね

簡単な例. [ と ] を ( と ) に対応させてみた



すんごい事してる人がいますね

最高にキモい Lisp コードを書いてみよう with 100 行リーダーマクロ

で以下が書いてみたやつ



こんな感じにつかう


スポンサーサイト

comment 0 trackback 0
トラックバックURL
http://telracsmoratori.blog.fc2.com/tb.php/172-a32bda01
トラックバック
コメント
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。