累積とフォルダーを学習していますが、コードに何か問題があります。すべてのリストの要素を比較したいのですが、foldr は最初と 2 番目の要素のみを使用します。これが私のコードです:
(define accum?
(lambda (list1 pre?)
(foldr (lambda (x y)
(if (pre? (car list1) (cadr list1)) #t #f))
#f
list1)))
(accum? '(1 2 3 4) <) --> #t
(accum? '(3 2 3 4) <) --> #f
(accum? '(1 2 5 4) <) --> #t (should be #f)
(accum? '(5 7 2 3) <) --> #t (should be #f)
どこが間違っているか分かりますか?ちなみに、if --> (if <...> #t #f)? は使わずに (pre? (car list1) (cadr list1)) だけ使ったほうがいいです。