Scheme 替换代码中无用的部分
我必须实现一个程序,找到代码中无用的部分,并用更好的代码替换它。我给你举个例子:Scheme 替换代码中无用的部分,scheme,Scheme,我必须实现一个程序,找到代码中无用的部分,并用更好的代码替换它。我给你举个例子: ;;(define (positive-odd? n) ;; (if (and (odd? n) (positive? n)) #t #f)) 应替换为: ;;(define (positive-odd? n) ;; (and (odd? n) (positive? n))) 我还有一个规则列表。我将为您提供一个规则示例,它将帮助我们了解以下示例: ;;(define redundant-if ;; '(
;;(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)))
因此,我必须迭代这个规则列表,并用无用的代码找到规则和我的函数之间的匹配。要做到这一点,我只有一个想法,但我不认为这是一个好主意:我从规则列表中提取规则,然后迭代函数体并查找相似之处,当我找到一个时,我替换代码。但我认为这很难做到
请告诉我这个问题的实施情况。我认为您需要的是所谓的部分评估 使用重写规则简化代数表达式等示例可以在中找到