1
=、<などのような関数には問題があります。まず最初にすべてを実装しようとしています。私が持っているものは次のものです(それほど大したものではありません)。スキーム:組み込み関数を再定義する
(define builtin-= =)
(define (b= x y) (builtin-= x y))
(define (= . z)
(if (null? z) #f
(b= (car z) (apply = (cdr z)))))
Iは、(= 2 3)、または任意の他の同様のコールを実行すると、しかし、これは無限の再帰またはヒープオーバーフローのいずれかになります。
あなたは '='ではなく 'equal? 'を実装していると思いますが、 – erjiang