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

所以,我不得不重複的規則,這個名單上找到的規則和我無用的代碼函數之間的匹配。要做到這一點,我只有一個想法,但我不認爲它是一個好主意:我從規則列表中非常規則,然後迭代我的函數的主體並查找相似之處,當我找到一個時,我替換了代碼。但我認爲這很難做到。

請給我任何關於這個問題的實現的想法。

回答