私はスキームや一般的なLispのに新たなんだ、と学習時に私が結合するローカル・プロシージャで使用される不可解な構文つまずいてきました:それはあることを把握するために私にしばらく時間がかかった (define mock
(lambda (s)
;; this is what I don't understand
(let splice ([l '()] [m (ca
2つの引数、すなわち系列の開始値と終了値をとるforAll手続きを書こうとしています。結果として得られるクロージャーには、初期値だけでなく、系列のすべての要素に適用する操作という2つの引数も必要です。 これは私が持っているもので、何かが欠けているように見えますが、私はクロージャの背後にあるコンセプトを理解していません。 (define (forAll n m)
(if (>= n m)
私はマクロを使用してスキームにおけるこのような何かを実装しようとしているこの (define-struct example (a b))
(define var (make-example 1 2))
(example? var)
(example-a var)
のようなあなたの構造体の型を作成し、使用する機会を持っているが、私は組み合わせた名前を持つ手続きの作成に問題があります(
クロージャを返すプロシージャを作成しようとしています。自分のシリーズに何らかの手続きを適用できるようにしたい。 これは私がこれまで持っていたもので、私のために働いていません。私はこれらの操作を行うことができるようにしたい (define (forAll n m)
(lambda (op start)
(op (op n start) (+ n 1) m)))
: (def
Schemeに、xという要素の位置を既存のリストの位置に追加するプロシージャを実装しようとしています。これは私が思いついたものです: (define empty-list '())
(define (add i x L)
(cond ((null? L) (set! L (list x)))
((= i 0)(set! L (cons x L)))
(else