Я хотел бы создать функцию схемы, которая дает True, если она передается список, который состоит полностью из идентичных элементов. Такой список будет «(1 1 1 1). Это даст ложь с чем-то вроде «(1 2 1 1).
Это то, что у меня до сих пор:
(define (list-equal? lst)
(define tmp (car lst))
(for-each (lambda (x)
(equal? x tmp))
lst)
)
ясно, что это неверно, и я новичок в этом. Я думаю, что я не могу выразить шаг, где я должен вернуться #t
или #f
.
заранее спасибо!
Редактировать: Я немного смотрел и обнаружил решение, которое, кажется, очень хорошо работает, и с минимальным количеством кода:
(define (list-equal? lst)
(andmap (lambda (x)
(equal? x (car lst)))
lst))
снова спасибо за помощь всем.