2012-03-28 101 views
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))) 

所以,我不得不重复的规则,这个名单上找到的规则和我无用的代码函数之间的匹配。要做到这一点,我只有一个想法,但我不认为它是一个好主意:我从规则列表中非常规则,然后迭代我的函数的主体并查找相似之处,当我找到一个时,我替换了代码。但我认为这很难做到。

请给我任何关于这个问题的实现的想法。

回答