タグ

ブックマーク / eclipse.cspc.jp (1)

  • define-syntax | METAMATE

    実はSchemeでマクロを一度も書いたことがなかったのでちょっと練習。 マクロ定義はdefine-syntaxで行う。 GaucheではCommon Lispのdefmacroのようなマクロ定義構文として、 define-macroもある。がこっちはR5RS範囲外。 マクロの書き方は次のかたち。 パターンの中で"_"が出てきたらマクロ名、 "..."は可変数の式として解釈します。 (define-syntax マクロ名 (syntax-rules (キーワードリスト) ((パターン1) (マクロ展開後の式)) ((パターン2) (マクロ展開後の式)) ...)) 1. C#風foreach (define-syntax foreach (syntax-rules (in) ((_ elm in lst expr ...) (let loop ((l lst)) (unless (

  • 1