2009-12-08 19 views

Trả lời

6

Các R5RS, và R6RS standard library for lists xác định memq, memv, và member mà có thể được sử dụng cho mục đích đó.

+0

Nó không phải chỉ trong một SRFI, mà còn trong R5RS (được thực hiện bởi tất cả các triển khai phong nha) http://schemers.org/Documents/Standards/R5RS/HTML/r5rs-ZH-9.html#%_idx_428 – newacct

+0

Cảm ơn nhận xét của bạn, tôi đã sửa các tham chiếu trong câu trả lời. –

0

Không, không có danh sách được xây dựng trong vị ngữ sẽ làm điều đó cho bạn. Nó rất dễ dàng để xác định một lambda hoặc một macro để làm điều đó mặc dù.

+1

vâng chỉ gây phiền nhiễu – Claudiu

4
(define (contains? l i) 
    (if (empty? l) #f 
     (or (eq? (first l) i) (contains? (rest l) i)))) 
6

Trong Scheme PLT, người ta

(member whatever list) 
(memv whatever list) 
(memq whatever list) 

từ SRFI mà sử dụng, tương ứng, equal?, eqv?, và eq? để kiểm tra cho sự bình đẳng. Ngoài ra còn có một số chức năng thư viện khác liên quan đến tìm kiếm trong danh sách:

PLT Scheme list reference

Các vấn đề liên quan