Я хотел бы создать функцию Scheme, которая возвращает true, если ей передается список, полностью состоящий из идентичных элементов. Такой список будет '(1 1 1 1). Это даст false с чем-то вроде '(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))
Еще раз спасибо за помощь всем.