Racket 是否有检查列表中是否存在元素的函数?
在racket中,我知道Racket 是否有检查列表中是否存在元素的函数?,racket,Racket,在racket中,我知道member函数返回元素的第一次出现(如果它存在)或#f,但是否有一个函数只返回元素是否存在于列表中的#t或#f,我认为没有标准函数,但是你可以在图书馆里看到和看到 定义true?非常简单: (define (true? x) (if x #t #f)) 我不认为有一个标准的函数用于此,但请参阅库中的和 定义true?非常简单: (define (true? x) (if x #t #f)) 这个问题的答案是会员。在《球拍》中,一切不是#f的都是真的。
member
函数返回元素的第一次出现(如果它存在)或#f
,但是否有一个函数只返回元素是否存在于列表中的#t
或#f
,我认为没有标准函数,但是你可以在图书馆里看到和看到
定义true?
非常简单:
(define (true? x)
(if x #t #f))
我不认为有一个标准的函数用于此,但请参阅库中的和 定义
true?
非常简单:
(define (true? x)
(if x #t #f))
这个问题的答案是
会员
。在《球拍》中,一切不是#f
的都是真的。因此,member
可以很好地测试列表中是否存在元素:
> (if (member 3 '(1 2 3)) 'present 'absent)
'present
> (if (member 3 '(1 2)) 'present 'absent)
'absent
没有必要在成功后专门生成#t
,因为分支中的所有内容都只关心#f
和非#f
值
在某些罕见的情况下,确实需要布尔值,例如,如果要将结果存储在某个数据结构中,并且不希望保留对列表的不必要引用。在球拍中执行此操作的常用习惯用法是(和v#t)
,其中v
是一些值,因为这相当于编写(如果v#t#f)
。因此,您可以用以下内容来包围对成员的呼叫:
> (and (member 3 '(1 2 3)) #t)
#t
由于很少需要这样做,因此这在Racket中比编写单独的成员?
函数更为惯用。这个问题的答案是成员
。在《球拍》中,一切不是#f
的都是真的。因此,member
可以很好地测试列表中是否存在元素:
> (if (member 3 '(1 2 3)) 'present 'absent)
'present
> (if (member 3 '(1 2)) 'present 'absent)
'absent
没有必要在成功后专门生成#t
,因为分支中的所有内容都只关心#f
和非#f
值
在某些罕见的情况下,确实需要布尔值,例如,如果要将结果存储在某个数据结构中,并且不希望保留对列表的不必要引用。在球拍中执行此操作的常用习惯用法是(和v#t)
,其中v
是一些值,因为这相当于编写(如果v#t#f)
。因此,您可以用以下内容来包围对成员的呼叫:
> (and (member 3 '(1 2 3)) #t)
#t
因为这很少有必要,所以在Racket中,这比编写一个单独的成员?
函数更为惯用。我最终同样使用了(列表)(成员3'(12 3))
,但很高兴知道,我甚至不需要这样做,因为列表将被视为“不属于f”。我最终同样使用了(列表?(成员3'(1 2 3))
但我很高兴知道我甚至不需要这样做,因为列表将被视为“t”而不是“f”。