vallog
ring wandering
ラベル
syntax-rules
の投稿を表示しています。
すべての投稿を表示
ラベル
syntax-rules
の投稿を表示しています。
すべての投稿を表示
2011/11/05
ておくlet
›
defmacro ( define-macro ( teoku-let binds . body) `( let ,( map ( lambda (ls) (cons (car ls)'( "ておくれ" )...
2011/02/12
プログラミング Gauche の object マクロと LOL の dlambda マクロ
›
プログラミング Gauche をパラパラ読んでたら、P.270 に object というマクロ(syntax-rules)が載ってたんですね。よく見たら、どこかで見たこのあるような形と機能だなーと。LOL( LET OVER LAMBDA Edition 1.0 )の dlam...
2010/11/27
syntax-rules: define-same-params
›
( define-same-params ( idx edge ) ( index->x ( remainder idx edge )) ( index->y ( quotient idx edge )) ( index->xy ( value...
2010/09/10
PAIP: メモ化, memo, memoize, define-memo
›
メモ化。以前もいくつかいい加減な記事を書いています。。 vallog: syntax-rules: define-memoize vallog: メモ化された Y Combinator vallog: pluggable Y Combinator メモ化については ...
2010/09/09
syntax-rules, defmacro: define-cxr, define-cxr*
›
caaaar とか cadadadar などを定義するマクロ。 LET OVER LAMBDA Edition 1.0 にもありました。 scmlib.scm - Gauche/src - Code Search Recursive Expansions - Let Ove...
syntax-rules: coalesce
›
これの関連で。。 vallog: syntax-rules: if-true こういうのが (let1 e 'd (if (or (if (eq? e 'a) 'car) (if (eq? e ...
syntax-rules: if-true
›
(if (hoge? fuga) 'fuga #f) ってのをどうにかできないかなーと思うんですが良いアイディアがありません。マクロを書いてみましたがいまいち。。 追記 Twitter / leque: 自分はそういう場合は (and (hoge? fug ... ...
2010/09/08
Re: syntax-rules: define-overload (match-lambda*)
›
vallog: syntax-rules: define-overload (clojure の defn みたいなもの) なるほど match-lambda* ですか! 実は match, match-lambda 辺りはよくわかってなかったので良い機会です。 Twitt...
syntax-rules: define-overload (clojure の defn みたいなもの)
›
引数の数にマッチして呼び出される本体が変わる clojure の defn を思い出したので書いてみました。 書いてみると別にどうということはありませんね・・・。 なぜ define-overload という名前かというと、始めて defn を見たときの感想が C# のオー...
syntax-rules: dlambda
›
今日は、Twitter のタイムラインで LET OVER LAMBDA Edition 1.0 の話題が出ていました。 私も読みましたが、詳細はすでに記憶の彼方です。。再読したいところです。 vallog: 読んだ「LET OVER LAMBDA Edition 1.0」...
2010/08/27
syntax-rules: mreverse (マクロ reverse, 反転)
›
syntax-rules による reverse です。syntax-rules でマクロを書く時に良く使われるテクニック(?)。 helper を別途定義した場合。 Scheme:マクロ内でのループ
2010/08/26
syntax-rules: cut っぽい let
›
たまたま、試しにこういうアナフォリックマクロを書いていました。値を一時的に束縛したいけど、名前を付けたいわけではないことがよくある気がしたので。別に <> じゃなくて On Lisp の aif や aand みたいに it でも良いんですけども。 そこで、sr...
2010/08/13
syntax-rules:def-let* (slib)
›
syntax-rules でマクロを定義するマクロ def-let* がうまいこと動きませんでした。 vallog: syntax-rules: fluid-let* これがその def-let* そこで、また教えて頂きました!ありがとうございます! Twitter / S...
2010/08/12
syntax-rules: fluid-let*
›
なんのことはありません。fluid-let を使って fluid-let* を書くわけですから、let を使って let* を書くのと変わりません。 ;; fluid-let* ;; ;; example ;; (define-values (a b c) ;; (va...
syntax-rules: fluid-let
›
fluid-let は dynamic scope をエミュレートするようなマクロです。 fluid-let は srfi にもあります。gauche などでは組み込みで用意されています。驚いたのは dynamic-wind が使われているところ。例えば body で脱出され...
2010/08/08
PAIP 3.1 「let*式と等価なlambda式を示せ」をマクロで・・・
›
掲題の通りの問題です。今さら手書きするのもあれなので、マクロ書いてエキスパンドすれば良いんじゃね?と思ってマクロ書きましたが、思ったよりエキスパンドしてくれませんでした・・・。
2010/08/05
PAIP 2.2 でちょっとしたマクロ
›
PAIP( 実用 Common Lisp (IT Architects’Archive CLASSIC MODER) )の当該箇所の本題とは無関係なのですが、マクロを書いたので晒しておきます。 以下コード。一番上が書籍に載っているもの。2, 3番目がマクロ。 私は On ...
2010/06/29
syntax-rules: ext-let
›
letで - 最適ゆるふわ研究会 CL とか Clojure の destructuring-bind があればそれで済みそうですが、Gauche にはどうやらなさげ? syntax-rules だとこんな感じでしょうか。。 これだと、(ext-let (a b)(1)...
2010/06/24
syntax-rules: across (Clojure の .. ぽいもの)
›
プログラミングClojure P.62~ 「Clojure から Java を使う」より。 (.getLocation (.getCodeSource (.getProtectionDomain (.getClass '(1 2))))) が (.. '(1...
2 件のコメント:
2010/06/09
(syntax-rules () ((_ "hoge" args ...
›
Twitter / `(,@valvallow): syntax-rules の パターンで、マクロ名の ... Twitter / SaitoAtsushi: @valvallow R5RS にある例の "ste ...
›
ホーム
ウェブ バージョンを表示