3
我必须实现一个程序,该程序可以找到无用的代码部分,并用一些更好的代码替换它。我给你举个例子:替换代码中无用的部分
;;(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)))
所以,我不得不重复的规则,这个名单上找到的规则和我无用的代码函数之间的匹配。要做到这一点,我只有一个想法,但我不认为它是一个好主意:我从规则列表中非常规则,然后迭代我的函数的主体并查找相似之处,当我找到一个时,我替换了代码。但我认为这很难做到。
请给我任何关于这个问题的实现的想法。