【发布时间】:2015-01-28 02:44:20
【问题描述】:
我希望替换成对中第一次出现的符号。例如: 采取
(define n '((a . b) . (a . d)))
我定义了一个方法上下文来用 '() 替换 X 的第一个实例(最左边) 替换 a 应该给我:
((() . b) a . d)
但是我被卡住了,因为我的方法替换了所有实例,我不确定如何为此添加检查。 我的代码如下:
(define (context s sym)
(cond ((null? s) #f)
((atom? s)
(if (equal? s sym) '() s ))
(else (cons (context (car s) sym)
(context (cdr s) sym)))))
给出: ((() . b) () . d)
有什么帮助吗?谢谢
【问题讨论】:
标签: functional-programming scheme lisp