In Python kann ich "x in list" tun, um zu sehen, ob die Liste x enthält. Gibt es dafür in Schema eine Entsprechung?In die Python-Check-Liste eingekapseltes Schema
5
A
Antwort
6
Die R5RS und die R6RS standard library for lists definieren memq
, memv
und member
die zu diesem Zweck verwendet werden können.
0
Nein, es gibt keine integrierte Prädikatliste, die das für Sie tun wird. Es ist jedoch sehr einfach, ein Lambda oder ein Makro zu definieren, um genau das zu tun.
+1
ja nur ärgerlich – Claudiu
4
(define (contains? l i)
(if (empty? l) #f
(or (eq? (first l) i) (contains? (rest l) i))))
6
In PLT Scheme hat man
(member whatever list)
(memv whatever list)
(memq whatever list)
vom SRFI der Verwendung bzw. equal?
, eqv?
und eq?
auf Gleichheit zu testen. Darüber hinaus gibt es eine Reihe von anderen Bibliotheksfunktionen in Bezug auf das Durchsuchen von Listen:
Es ist nicht nur in einem SRFI, sondern auch in R5RS (die von allen anständigen Implementierungen implementiert ist) http://schemers.org/Documents/Standards/R5RS/HTML/r5rs-ZH-9.html#%_idx_428 – newacct
Danke für Ihren Kommentar, ich habe die Referenzen in der Antwort korrigiert. –