2016-07-05 12 views
-1

;; Das Problem ist, dass ich berechnen möchte, ob a-Liste in einer anderen Liste enthalten ist, unabhängig von der Größe ;;(list=? (list 1 2 3) (list 2 2 2 2 3 1 2 3 4)) sollte True produzieren, aber für Mein Programm tut es nicht.Ich möchte herausfinden, ob list1 in list2 enthalten ist; Auch bekannt als eine Unterliste, aber ich habe Probleme mit dem Endteil meines Codes

bitte erklären/fix, wo ich schief gelaufen mein Code:

(define (list=? a-list another-list) 
    (cond 
     [(empty? a-list) (empty? another-list)] 
     [(cons? a-list) 
       (and (cons? another-list) 
       (and (= (first a-list) (first another-list)) 
        (list=? (rest a-list) (rest another-list))))])) 
+0

Mögliche Duplikat [Gibt es eine Möglichkeit zu überprüfen, ob alle Elemente einer Liste in einer anderen Liste in Racket enthalten sind?] (http://stackoverflow.com/questions/29322565/is-there-a-way-to-check-if-all-elements-of -a-list-sind-enthalten-in-einer-anderen-Liste) –

Antwort

0

Das ist ziemlich einfach in Schläger, benutzen Sie einfach die subset? Prozedur:

(define (list=? a-list another-list) 
    (subset? a-list another-list)) 


(list=? (list 1 2 3) (list 2 2 2 2 3 1 2 3 4)) 
=> #t