タグ

!tumblr-techとマクロに関するtyruのブックマーク (3)

  • 定義済みマクロ - redstrange Wiki*

    標準規格 C言語 __DATE__ ソースのコンパイル日付 __FILE__ ソースのファイル名 __func__ 関数名(Visual Studio.NET以降では、__FUNCTION__) __LINE__ 行番号 __STDC__ 標準Cに従っている際に定義されている(ifdefで使う) __STDC_HOSTED__ 整数1 __STDC_IEC_559__ IEC60559浮動小数点仕様に従っている際に定義されている __STDC_IEC_559_COMPLEX__ IEC60559互換の複素数仕様に従っている際に定義されている __STDC_ISO_10646__ ?→http://seclan.dll.jp/c99d/c99d02.htm#dt19990412 __STDC_VERSION__ C言語のバージョン __TIME__ ソースのコンパイル時刻 __TIMESTA

    定義済みマクロ - redstrange Wiki*
  • Gaucheのパターンマッチを使いやすくするマクロを作った。 - 自称スーパーハッカーの適当なプログラミング雑記等

    Gaucheでもutil.matchを使えばパターンマッチができますが、括弧が多いのであまり読みやすいとは言えません。 それをなんとかしようと思い、書いてみました。 こんな感じになっています。 このマクロを使えば、階乗はこんな感じに書けます。括弧が減るので読みやすくなります。 (def fact 0 -> 1 n -> (* n (fact (- n 1)))) Gaucheの「pa$」は結構便利ですね。特に、述語を受け取ることが多いリスト処理関係のところで便利です。

    Gaucheのパターンマッチを使いやすくするマクロを作った。 - 自称スーパーハッカーの適当なプログラミング雑記等
  • なぜ他の言語に、Lispのようなマクロがないのか?

    前回の9LISPでも掲題のような話をしていました。私も最近このことが気になります。なんでだろう? そこで、こういう文章があったなーと。 Revenge of the Nerds (Lispの意味での)マクロは、私の知る限り依然としてLispに特有のものだ。 たぶん、マクロを持つためには言語をLispと同じような奇妙な外見にしないと 駄目だからだろう。それにまた、マクロという最後の力を加えたら、 それは新しい言語ではなくLispの新しい方言になってしまうからだろう。私はよくジョークでそういうことを言うのだが、実際それは真実なんだ。 car、cdr、cons、quote、cond、atom、eq、そして関数をリストで表現する 方法を備えた言語があれば、あなたはLispの残り全てをそれで構築することができる。 これがLispの質を定義しているんだ。McCarthyがLispにこの姿を与えたのは、

    なぜ他の言語に、Lispのようなマクロがないのか?
    tyru
    tyru 2010/05/09
    shiroさんがコメントしてる
  • 1