iceman1888
Neuling
hi leute
ich soll folgende operationen für mengen in scheme (Lisp) implementieren:
1. (vereinigung a b)
2. (teilmenge? a b)
3. (entfernen x a)
4. (differenz a b)
für die vereinigung hab ich folgendes:
bin mir aber nicht sicher..
bei 2. :
aber bei den anderen beiden fällt mir nicht so recht was ein... und ich weiß auch net ob meine beiden ersten sachen richtig sind...
hat jemand eine idee??
greetz iceman
---------- Beitrag hinzugefügt um 15:48 ---------- Vorheriger Beitrag war um 15:35 ----------
oder könnte das für die teilmenge auch so aussehen???
---------- Beitrag hinzugefügt um 15:58 ---------- Vorheriger Beitrag war um 15:35 ----------
so hab mal ein vorschlag für entfernen:
stimmt das so??
ich soll folgende operationen für mengen in scheme (Lisp) implementieren:
1. (vereinigung a b)
2. (teilmenge? a b)
3. (entfernen x a)
4. (differenz a b)
für die vereinigung hab ich folgendes:
Code:
(define (vereinigung a b)
(cond ((empty? a) b)
((empty? b) a)
((element? (first a) b)
(cons (first a) (vereinigung (rest a) b)))
(else (vereinigung (rest a) b))))
(define leer empty)
(define (element? x m)
(cond ((empty? m) false)
((equal? x (first m)) true)
(else (element? x (rest m)))))
bin mir aber nicht sicher..
bei 2. :
Code:
(define (teilmenge? a b)
(cond ((empty? a) false)
((empty? b) false)
(else (element? a b))))
(define (element? x m)
(cond ((empty? m) false)
((equal? x (first m)) true)
(else (element? x (rest m)))))
aber bei den anderen beiden fällt mir nicht so recht was ein... und ich weiß auch net ob meine beiden ersten sachen richtig sind...
hat jemand eine idee??
greetz iceman
---------- Beitrag hinzugefügt um 15:48 ---------- Vorheriger Beitrag war um 15:35 ----------
oder könnte das für die teilmenge auch so aussehen???
Code:
(define (teilmenge? a b)
(if (empty? a)
true
(and (element? (first a) b) (teilmenge? (rest a) b) )))
(define (element? x m)
(cond ((empty? m) false)
((equal? x (first m)) true)
(else (element? x (rest m)))))
---------- Beitrag hinzugefügt um 15:58 ---------- Vorheriger Beitrag war um 15:35 ----------
so hab mal ein vorschlag für entfernen:
Code:
(define (entfernen x a)
(cond ((empty? a) a)
((equal? x (car a)) (entfernen x (cdr a)))
(else (cons (car a) (entfernen x (cdr a))))))
stimmt das so??