Мне нужно реализовать программу, которая находит бесполезные части кода и заменяет ее более качественным кодом.Я приведу пример:
;;(define (positive-odd? n)
;; (if (and (odd? n) (positive? n)) #t #f))
следует заменить на:
;;(define (positive-odd? n)
;; (and (odd? n) (positive? n)))
У меня также есть список с правилами.Я приведу вам пример правила, которое поможет нам в приведенном ниже примере:
;;(define redundant-if
;; '((WHEN (if ?cond #t #f))
;; (THEN ?cond)))
Итак, я должен перебрать этот список правил и найти соответствие между правилами и моей функцией с помощьюбесполезный код.Для этого у меня есть только идея, но я не думаю, что она хорошая: я беру само правило из списка правил, затем перебираю тело своей функции и ищу сходства, а когда нахожу,Я заменяю кодНо я думаю, что это довольно сложно сделать.
Пожалуйста, дайте мне представление о реализации этой проблемы.