2016-03-17 106 views
0

如何检查列表中是否存在某个元素,两者都作为函数调用的输入,而不使用lambda?我正在尝试成员?但无法得到它。检查球拍列表中是否存在元素

(define (find-string (lst lst str ua) 
    (cond ((member? ua lst) #t) 
    (else #f)) 
+0

看来你”试图在过程声明中指定每个参数的类型?它不能像Racket那样工作... –

+0

[This](http://stackoverflow.com/questions/694669/what-is-the-scheme-function-to-find-an-element-in-a -list)可能会有所帮助。 – GDP2

回答

0

成员的使用会起作用,它只是添加额外的“?”在功能上没有任何的正面需要

(member 2 (list 1 2 3 4)) [1] 

将返回true

另一种解决办法是写那些自己递归函数

(define (is-in-list list value) 
(cond 
    [(empty? list) false] 
    [(= (first list) value) true] 
    [else (is-in-list (rest list) value)])) 

[1] https://docs.racket-lang.org/reference/pairs.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._member%29%29

+0

我不确定你是否在问一个问题。请**避免在结束时需要提问的标记**。 –

+0

?是一个操作员,不通过添加引用来更新问题 –