タグ

Macroと2013年に関するItisangoのブックマーク (2)

  • あなたがLispを無視することができない理由 - 八発白中

    (この記事はLisp Advent Calendar 1日目のためのエントリです。) 禅が好んで用いる比喩がある。月を指すには指が必要である。だが、その指を月と思う者はわざわいなるかな。 — 鈴木大拙「禅」 これをLispに例えるなら、こう言うことができるかもしれない。 Lispを書くには括弧が必要である。だが、その括弧をLispと思う者はわざわいなるかな。 Lispを普段書いている身としてはLispについて括弧がどう、というのは些細なものに思えるが、Lispを知らない人からすると自然な考えだろう。人間は知らないものを理解しようとするとき、自分が今まで見たもの、知っているものと比較して手がかりを得ようとする。Lispが他のプログラム言語と比較してユニークなものは、やはりその括弧で表現されたS式だ。 しかし、Lispが括弧を使った奇妙な構文を用いるのは理由がある。そしてそれがLispの強力さ

    Itisango
    Itisango 2013/12/01
    “人間は知らないものを理解しようとするとき、自分が今まで見たもの、知っているものと比較して手がかりを得ようとする。Lispが他のプログラム言語と比較してユニークなものは、やはりその括弧で表現されたS式だ。”
  • プリプロセッサでプログラムの質を向上させよう

    「#」演算子と「##」演算子 マクロ定義では、「#」演算子と「##」演算子が使えます。 引数を持つマクロ(関数型マクロ)では記述した引数がそのまま評価されますが、仮引数の前に「#」演算子を付けると、実引数がそのまま文字列になります。 // 通常のマクロの例 #define MACRO_A(a) a int x = MACRO_A(1 + 2); // int x = 1 + 2; // #演算子を使ったマクロの例 #define MACRO_B(b) # b char * y = MACRO_B(1 + 2); // char * y = "1 + 2";

    プリプロセッサでプログラムの質を向上させよう
    Itisango
    Itisango 2013/10/15
    #C の #macro の#と##演算子について。めったに #使わない から #忘れちゃう んですよね。
  • 1