Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scheme 替换代码中无用的部分_Scheme - Fatal编程技术网

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)))
因此,我必须迭代这个规则列表,并用无用的代码找到规则和我的函数之间的匹配。要做到这一点,我只有一个想法,但我不认为这是一个好主意:我从规则列表中提取规则,然后迭代函数体并查找相似之处,当我找到一个时,我替换代码。但我认为这很难做到


请告诉我这个问题的实施情况。

我认为您需要的是所谓的部分评估

使用重写规则简化代数表达式等示例可以在中找到