Function 方案成员函数,不确定我的定义
我想要 归假 我做错了什么Function 方案成员函数,不确定我的定义,function,scheme,Function,Scheme,我想要 归假 我做错了什么 (member? 'a '((d d) (d d))) 如果有人能告诉我我的成员函数有什么问题,我将不胜感激。((空?列表)#t) 如果列表为空,则返回true。那是错误的。((空?列表)#t) 如果列表为空,则返回true。那是错误的。试试这个,它是一个更通用的解决方案: (define (member? x list) (cond ((null? list) #t ) (else ( or (or (eq? (car (car list)) x) (
(member? 'a '((d d) (d d)))
如果有人能告诉我我的成员函数有什么问题,我将不胜感激。((空?列表)#t)
如果列表为空,则返回true。那是错误的。((空?列表)#t)
如果列表为空,则返回true。那是错误的。试试这个,它是一个更通用的解决方案:
(define (member? x list)
(cond
((null? list) #t )
(else ( or (or (eq? (car (car list)) x) (eq? (cdr (car list)) x)) (member? x (cdr list) ))
)))
注意,如果你想在一个(任意嵌套的)列表中搜索,递归有点复杂:你必须考虑当列表是空的情况下,当列表不是列表而是一个元素时,你必须在列表的CARD和CDR部分上重复。 例如,上述定义适用于以下列表:
(define (member? ele lst)
(cond ((null? lst) #f)
((not (list? lst))
(equal? ele lst))
(else (or (member? ele (car lst))
(member? ele (cdr lst))))))
试试这个,这是一个更通用的解决方案:
(define (member? x list)
(cond
((null? list) #t )
(else ( or (or (eq? (car (car list)) x) (eq? (cdr (car list)) x)) (member? x (cdr list) ))
)))
注意,如果你想在一个(任意嵌套的)列表中搜索,递归有点复杂:你必须考虑当列表是空的情况下,当列表不是列表而是一个元素时,你必须在列表的CARD和CDR部分上重复。 例如,上述定义适用于以下列表:
(define (member? ele lst)
(cond ((null? lst) #f)
((not (list? lst))
(equal? ele lst))
(else (or (member? ele (car lst))
(member? ele (cdr lst))))))