Я пытаюсь написать функцию предиката, которая возвращает TRUE, когда список определен как застежка-молния. Застежка-молния определяется как правильный список, где каждый элемент представляет собой список с ровно двумя элементами и может быть любым выражением.Функция предиката функции zipper
Примером является
(zipper? '((a 1)(b 2)))
#t
(zipper? '((a (1)) ((b) 2)))
#t
(zipper? '((a 1 2)(b 1)))
#f
Я пытался сначала проверить, если список аргументов полностью и вернуться ложным, а затем проверить автомобиль список его длины элементов, и передать корд из списка назад хотя моя функция, но у меня проблемы с ее запуском.
(define (zipper? l)
(if (empty? l)
#f
(if (> 1 (length car(l)))
#t
(zipper? (cdr (l))))))
любая идея, что я делаю неправильно, и как я могу это исправить? Я все еще изучаю схему.
«список Ассоциации» название этой структуры данных , [Zipper] (http://en.wikipedia.org/wiki/Zipper_ (data_structure)) - это другой зверь. –