Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % elternteil/2
- % elternteil(X,Y), X ist Elternteil (Mutter/Vater) von Y
- % Ebene 2
- elternteil(alois,udo).
- elternteil(alois,heinz).
- elternteil(thea,udo).
- elternteil(thea,heinz).
- elternteil(anton,hugo).
- elternteil(anton,lutz).
- elternteil(anton,steffi).
- elternteil(magda,hugo).
- elternteil(magda,lutz).
- elternteil(magda,steffi).
- elternteil(fritz,ulrich).
- elternteil(fritz,susanne).
- elternteil(fritz,lena).
- elternteil(ulrike,ulrich).
- elternteil(ulrike,susanne).
- elternteil(ulrike,lena).
- elternteil(jakob,bert).
- elternteil(jakob,christa).
- elternteil(jakob,isolde).
- elternteil(elsa,bert).
- elternteil(elsa,christa).
- elternteil(elsa,isolde).
- elternteil(jens,elke).
- elternteil(jens,helga).
- elternteil(jens,erika).
- elternteil(anna,elke).
- elternteil(anna,helga).
- elternteil(anna,erika).
- % Ebene 3
- elternteil(gunter,ulrike).
- elternteil(gunter,jakob).
- elternteil(klara,ulrike).
- elternteil(klara,jakob).
- elternteil(manfred,thea).
- elternteil(manfred,elsa).
- elternteil(manfred,anton).
- elternteil(helen,thea).
- elternteil(helen,elsa).
- elternteil(helen,anton).
- elternteil(otto,alois).
- elternteil(otto,fritz).
- elternteil(otto,jens).
- elternteil(lisa,alois).
- elternteil(lisa,fritz).
- elternteil(lisa,jens).
- elternteil(xaver,anna).
- elternteil(xaver,magda).
- elternteil(vera,anna).
- elternteil(vera,magda).
- elternteil(elmo,kruemmel).
- % Ebene 4
- elternteil(dieter,lisa).
- elternteil(ruth,lisa).
- elternteil(helmut,xaver).
- elternteil(renate,xaver).
- elternteil(herbert,otto).
- elternteil(maria,otto).
- elternteil(hubert,helen).
- elternteil(johanna,helen).
- elternteil(karl,manfred).
- elternteil(inge,manfred).
- elternteil(siegfried,vera).
- elternteil(krimhild,vera).
- % Ebene 5
- elternteil(wall-e,dieter).
- elternteil(wall-e,ruth).
- elternteil(wall-e,gunter).
- elternteil(wall-e,klara).
- elternteil(wall-e,helmut).
- elternteil(wall-e,renate).
- elternteil(wall-e,herbert).
- elternteil(wall-e,maria).
- elternteil(wall-e,hubert).
- elternteil(wall-e,johanna).
- elternteil(wall-e,karl).
- elternteil(wall-e,inge).
- elternteil(wall-e,pablo).
- elternteil(wall-e,marion).
- elternteil(wall-e,siegfried).
- elternteil(wall-e,krimhild).
- elternteil(eve,dieter).
- elternteil(eve,ruth).
- elternteil(eve,gunter).
- elternteil(eve,klara).
- elternteil(eve,helmut).
- elternteil(eve,renate).
- elternteil(eve,herbert).
- elternteil(eve,maria).
- elternteil(eve,hubert).
- elternteil(eve,johanna).
- elternteil(eve,karl).
- elternteil(eve,inge).
- elternteil(eve,pablo).
- elternteil(eve,marion).
- elternteil(eve,siegfried).
- elternteil(eve,krimhild).
- % verheiratet/2
- % verheiratet(X,Y), maennlich X ist mit weiblich Y verheiratet
- verheiratet(alois,thea).
- verheiratet(anton,magda).
- verheiratet(dieter,ruth).
- verheiratet(fritz,ulrike).
- verheiratet(gunter,klara).
- verheiratet(helmut,renate).
- verheiratet(herbert,maria).
- verheiratet(hubert,johanna).
- verheiratet(jakob,elsa).
- verheiratet(jens,anna).
- verheiratet(karl,inge).
- verheiratet(manfred,helen).
- verheiratet(otto,lisa).
- verheiratet(pablo,marion).
- verheiratet(siegfried,krimhild).
- verheiratet(helge,elisa).
- verheiratet(wall-e,eve).
- verheiratet(xaver,vera).
- % weiblich/1
- % Frauen
- weiblich(anna).
- weiblich(christa).
- weiblich(elke).
- weiblich(elsa).
- weiblich(erika).
- weiblich(eve).
- weiblich(helen).
- weiblich(helga).
- weiblich(helge).
- weiblich(inge).
- weiblich(isolde).
- weiblich(johanna).
- weiblich(klara).
- weiblich(krimhild).
- weiblich(lena).
- weiblich(lisa).
- weiblich(magda).
- weiblich(maria).
- weiblich(marion).
- weiblich(renate).
- weiblich(ruth).
- weiblich(steffi).
- weiblich(susanne).
- weiblich(thea).
- weiblich(ulrike).
- weiblich(vera).
- weiblich(zummsel).
- % maennlich/1
- % Maenner
- maennlich(alois).
- maennlich(anton).
- maennlich(bert).
- maennlich(dieter).
- maennlich(elisa).
- maennlich(fritz).
- maennlich(gunter).
- maennlich(heinz).
- maennlich(helmut).
- maennlich(herbert).
- maennlich(hubert).
- maennlich(hugo).
- maennlich(jakob).
- maennlich(jens).
- maennlich(karl).
- maennlich(lutz).
- maennlich(manfred).
- maennlich(otto).
- maennlich(pablo).
- maennlich(siegfried).
- maennlich(udo).
- maennlich(ulrich).
- maennlich(wall-e).
- maennlich(xaver).
- maennlich(zummsel).
- vorfahre(X,Y) :- elternteil(X,Y).
- vorfahre(X,Y) :-
- elternteil(X,Z),
- vorfahre(Z,Y).
- nachkomme(X,Y) :- elternteil(Y,X).
- nachkomme(X,Y) :-
- elternteil(Z,X),
- nachkomme(Z,Y).
- nachkommen(X,Y) :-
- findall(Z, nachkomme(Z,X),Z),
- list_to_set(Z, Y).
- eheleute(X, Y) :-
- verheiratet(X, Y).
- eheleute(X, Y) :-
- verheiratet(Y, X).
- kind(X, Y) :-
- elternteil(Y, X).
- geschwister(X, Y) :-
- kind(X, Z),
- kind(Y, Z),
- Y \== X.
- bruder(X, Y) :-
- geschwister(X, Y),
- maennlich(X).
- schwester(X, Y) :-
- geschwister(X, Y),
- weiblich(X).
- vater(X, Y) :-
- elternteil(X, Y),
- maennlich(X).
- mutter(X, Y) :-
- elternteil(X, Y),
- weiblich(X).
- onkel(X, Y) :-
- elternteil(Z, Y),
- bruder(X, Z).
- tante(X, Y) :-
- elternteil(Z, Y),
- schwester(X, Z).
- großeltern(X, Y) :-
- elternteil(Z, Y),
- elternteil(X, Z).
- opa(X, Y) :-
- großeltern(X, Y),
- maennlich(X).
- oma(X, Y) :-
- großeltern(X, Y),
- weiblich(X).
- uroma(X, Y) :-
- großeltern(Z, Y),
- mutter(X, Z).
- uropa(X, Y) :-
- großeltern(Z, Y),
- vater(X, Z).
- maenUweibl(List) :-
- findall(X, (maennlich(X), weiblich(X)), List).
- verhKor(List) :-
- findall((X, Y), (verheiratet(X, Y),(maennlich(Y) ; weiblich(X))), Dup), list_to_set(Dup, List).
- reg(X) :-
- \+ maennlich(X),
- \+ weiblich(X).
- elterVoll(List) :-
- findall((X, Y), (elternteil(X, Y), reg(X), reg(Y)), List).
- wurzel_w(X) :-
- weiblich(X),
- \+ kind(X, _).
- wurzel_m(X) :-
- maennlich(X),
- \+ kind(X, _).
- wurzel(List) :-
- findall(X, (wurzel_m(X) ; wurzel_w(X)), List).
- test(nachkomme) :-
- %positiv
- write('nachkomme +'),
- nachkomme(helga,eve), write('.'),!,
- nachkomme(susanne,klara),
- %negativ
- write('. -'),!,
- \+ nachkomme(helga,marion), write('.'),!,
- \+ nachkomme(kruemmel,klara),!, writeln('ok').
- test(vorfahre) :-
- %positiv
- write('vorfahre +'),
- vorfahre(eve,helga), write('.'),!,
- vorfahre(klara,susanne),
- %negativ
- write('. -'),!,
- \+ vorfahre(marion,helga), write('.'),!,
- \+ vorfahre(klara,kruemmel),!, writeln('ok').
- test(nachkommen) :-
- %positiv
- write('nachkommen +'),
- nachkommen(eve,Nachommen), write('.'),!,
- length(Nachommen,46), write('.'),!,
- member(vera,Nachommen), write('.'),!,
- member(bert,Nachommen), write('.'),!,
- nachkommen(bert,[]),
- %negativ
- write('. -'),!,
- \+ length(Nachommen,164), write('.'),!,
- \+ member(kruemmel,Nachommen), write('.'),!,
- \+ nachkommen(elke,[_X|_Y]),!, writeln('ok').
- test(geschwister) :-
- %positiv
- write('geschwister +'),
- geschwister(herbert,johanna), write('.'),!,
- geschwister(elsa,anton),
- %negativ
- write('. -'),!,
- \+ geschwister(udo,thea), write('.'),!,
- \+ geschwister(elmo,kruemmel),!, writeln('ok').
- test(bruder) :-
- %positiv
- write('bruder +'),
- bruder(hubert,karl), write('.'),!,
- bruder(hubert,inge),
- %negativ
- write('. -'),!,
- \+ bruder(manfred,otto), write('.'),!,
- \+ bruder(thea,anton),!, writeln('ok').
- test(schwester) :-
- %positiv
- write('schwester +'),
- schwester(inge,johanna), write('.'),!,
- schwester(inge,hubert),
- %negativ
- write('. -'),!,
- \+ schwester(hubert,inge), write('.'),!,
- \+ schwester(lisa,klara),!, writeln('ok').
- test(eheleute) :-
- %positiv
- write('eheleute +'),
- eheleute(xaver,vera), write('.'),!,
- eheleute(lisa,otto),
- %negativ
- write('. -'),!,
- \+ eheleute(xaver,xaver), write('.'),!,
- \+ eheleute(otto,helen), write('.'),!,
- \+ eheleute(helen,otto),!, writeln('ok').
- test(onkel) :-
- %positiv
- write('onkel +'),
- onkel(dieter,otto), write('.'),!,
- onkel(anton,christa), write('.'),!,
- onkel(helmut,helen),
- %negativ
- write('. -'),!,
- \+ onkel(wall-e,alois), write('.'),!,
- \+ onkel(ulrike,christa), write('.'),!,
- \+ onkel(alois,hugo),!, writeln('ok').
- test(tante) :-
- %positiv
- write('tante +'),
- tante(renate,otto), write('.'),!,
- tante(ulrike,christa), write('.'),!,
- tante(johanna,helen),
- %negativ
- write('. -'),!,
- \+ tante(eve,alois), write('.'),!,
- \+ tante(anton,christa), write('.'),!,
- \+ tante(thea,susanne),!, writeln('ok').
- test(oma) :-
- %positiv
- write('oma +'),
- oma(maria,alois), write('.'),!,
- oma(eve,jakob), write('.'),!,
- oma(helen,steffi),
- %negativ
- write('. -'),!,
- \+ oma(eve,alois), write('.'),!,
- \+ oma(magda,steffi), write('.'),!,
- \+ oma(hubert,thea),!, writeln('ok').
- test(opa) :-
- %positiv
- write('opa +'),
- opa(wall-e,manfred), write('.'),!,
- opa(hubert,anton),
- %negativ
- write('. -'),!,
- \+ opa(eve,jakob), write('.'),!,
- \+ opa(xaver,bert), write('.'),!,
- \+ opa(krimhild,magda),!, writeln('ok').
- test(uroma) :-
- %positiv
- write('uroma +'),
- uroma(eve,alois), write('.'),!,
- uroma(krimhild,steffi),
- %negativ
- write('. -'),!,
- \+ uroma(wall-e,alois), write('.'),!,
- \+ uroma(vera,steffi), write('.'),!,
- \+ uroma(hubert,lutz),!, writeln('ok').
- test(uropa) :-
- %positiv
- write('uropa +'),
- uropa(wall-e,magda), write('.'),!,
- uropa(hubert,lutz),
- %negativ
- write('. -'),!,
- \+ uropa(eve,magda), write('.'),!,
- \+ uropa(xaver,lutz), write('.'),!,
- \+ uropa(krimhild,steffi),!, writeln('ok').
- test(maenUweibl) :-
- write('maenUweibl '),
- maenUweibl([zummsel]),!, writeln('ok').
- test(verhKor) :-
- write('verhKor '),
- verhKor([ Tupel ]),!,
- member(Tupel,[ (helge,elisa),(elisa,helge)]),!, writeln('ok').
- test(elterVoll) :-
- write('elterVoll '),
- elterVoll([ Tupel ]),!,
- member(Tupel,[ (elmo,kruemmel),(kruemmel,elmo)]),!, writeln('ok').
- test(wurzel) :-
- write('wurzel '),
- list_to_ord_set([elisa, wall-e, eve, helge, zummsel],SetA),
- wurzel(Liste),!,
- list_to_ord_set(Liste,SetB),
- ord_seteq(SetA,SetB),!, writeln('ok').
- test(allfamilie) :-
- test(nachkomme),
- test(vorfahre),
- test(nachkommen),
- test(geschwister),
- test(bruder),
- test(schwester),
- test(eheleute),
- test(onkel),
- test(tante),
- test(oma),
- test(opa),
- test(uroma),
- test(uropa),
- test(maenUweibl),
- test(verhKor),
- test(elterVoll),
- test(wurzel)
- .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement