私は自分のデータ型でREPLを作成するのが好きですが、同じパターン関数を何度も何度も書くのは好きではありません。
だから、これは私を悩ませているナッツです。
独自のプリミティブデータ型のセットを取得しました(define primitives '("mytrue" "myfalse" "mynumber" ...))
また、私は持っています(define primitiveTesters (list "mytrue?" "myfalse?" "mynumber?" ... )
問題は、データ型を取得するために(マップ)またはマクロを適用したいだけですか?基本的に、記録された車が存在するかどうかをチェックするだけの手順(mynumber . ( . ))
。
つまり、最終的には似たようなもの(mynumber? (car (mynumber.(1.))) => #t
になります。しかし、これには私が必要です(define mynumber? (lambda (...)(...))
私のdefine-batchingマクロはこのように見えますが、を注入する運がありません<variable>
。
(define-syntax define-batching
(syntax-rules ()
((_ value expr)(define value expr))
((_ value) value)
((_ value1 value2 ...) (begin (define value1 expr) (define-batching test2...)))
))
それで、私は計画の行き止まりに達しましたか?
私はEmacsLispで似たようなものを見たと思います。
私が最終的に探しているのは:
(define checker '(audi? volkswagen? mercedes?))
(define datatype '(audi volkswagen mercedes))
(map define-checker checker datatype )
or
(define-checker (car checker) (car datatype))