1
私はフィルターの作品を得ることができますが、それは破壊的にそれをしません。以下は、起動コードとテストケースです:破壊フィルターの作成方法スキームで?
(define (filter! f s)
;;Your solution
テストケース:
(define (big x) (> x 5))
(define ints (list 1 10 3 8 4 7))
(define ints1 (cdr ints))
(define filtered-ints (filter! big ints))
filtered-ints
; expect (10 8 7)
(eq? filtered-ints ints1) ; expect #t
誰も助けてくださいもらえますか?
あなたは、テストに合格しなかった要素を削除することによって、フィルタが引数として与えられたリストを変更することを意味しますか?ここで 'ints1'の使用は何ですか? –
どちらか分かりませんが、元の入力リストでポインタが変更され、filtered-intsとints1を同等にすることに関連していると思います。それが私を最も混乱させるものです。 –
可能な複製[破壊的な逆を作る! function in scheme](@stackoverflow.com/questions/10266086/make-a-destructive-reverse-function-in-scheme) – matt