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))))))