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)))
所以,我不得不重複的規則,這個名單上找到的規則和我無用的代碼函數之間的匹配。要做到這一點,我只有一個想法,但我不認爲它是一個好主意:我從規則列表中非常規則,然後迭代我的函數的主體並查找相似之處,當我找到一個時,我替換了代碼。但我認爲這很難做到。
請給我任何關於這個問題的實現的想法。