<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.mafiasi.de/index.php?action=history&amp;feed=atom&amp;title=P1-WS04-MusterLoesung05.txt</id>
	<title>P1-WS04-MusterLoesung05.txt - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mafiasi.de/index.php?action=history&amp;feed=atom&amp;title=P1-WS04-MusterLoesung05.txt"/>
	<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=P1-WS04-MusterLoesung05.txt&amp;action=history"/>
	<updated>2026-10-18T10:59:50Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Fachschaft Informatik</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=P1-WS04-MusterLoesung05.txt&amp;diff=3194&amp;oldid=prev</id>
		<title>PatrickFey: 2 Versionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=P1-WS04-MusterLoesung05.txt&amp;diff=3194&amp;oldid=prev"/>
		<updated>2007-11-05T05:50:15Z</updated>

		<summary type="html">&lt;p&gt;2 Versionen&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 5. November 2007, 05:50 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;de&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(kein Unterschied)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>PatrickFey</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=P1-WS04-MusterLoesung05.txt&amp;diff=3193&amp;oldid=prev</id>
		<title>fsrwiki_&gt;Oddmuse Import: link fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=P1-WS04-MusterLoesung05.txt&amp;diff=3193&amp;oldid=prev"/>
		<updated>2007-11-05T05:49:25Z</updated>

		<summary type="html">&lt;p&gt;link fix&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 5. November 2007, 05:49 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l93&quot;&gt;Zeile 93:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 93:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% sonst führen wir die Multiplikation auf die Addition zurück  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% sonst führen wir die Multiplikation auf die Addition zurück  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% 5 Rekursion: x*s(y)= (x*y) + x, dazu führen wir den Zwischenwert&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% 5 Rekursion: x*s(y)= (x*y) + x, dazu führen wir den Zwischenwert&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% im &quot;IntermediateResult&quot; mit.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% im &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;IntermediateResult&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&quot; mit.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mult(X,s(Y),R):- mult(X,Y,IR),add(X,IR,R).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mult(X,s(Y),R):- mult(X,Y,IR),add(X,IR,R).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>fsrwiki_&gt;Oddmuse Import</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=P1-WS04-MusterLoesung05.txt&amp;diff=3192&amp;oldid=prev</id>
		<title>fsrwiki_&gt;1illig: antispam</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=P1-WS04-MusterLoesung05.txt&amp;diff=3192&amp;oldid=prev"/>
		<updated>2006-12-22T05:46:57Z</updated>

		<summary type="html">&lt;p&gt;antispam&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
P1 WS2004/2005&lt;br /&gt;
Musterlösung zu Aufgabenblatt 5 - v0.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aufgabe 1&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
a) Aufgabe: p(X,f) p(g,Y)&lt;br /&gt;
X=g, Y=f - Erfolgreich&lt;br /&gt;
&lt;br /&gt;
b) Aufgabe: r(a(b(M),N)) r(a(b(K),m))&lt;br /&gt;
N=m, K=M - Erfolgreich&lt;br /&gt;
&lt;br /&gt;
c) Aufgabe: h(A,c(C),C) h(B,B,a)&lt;br /&gt;
B=C(a), C=a, A=B=C(a) - Erfolgreich&lt;br /&gt;
&lt;br /&gt;
d) Aufgabe: f(a(X),b,b(X)) f(a(Y),Y,b(a))&lt;br /&gt;
X=a, Y=b, aber X=Y ist nicht erfüllt - Nicht erfolgreich&lt;br /&gt;
&lt;br /&gt;
e) Aufgabe: a(i(i(i(p))),i(P)) a(i(P),i(i(i(p))))&lt;br /&gt;
P=i(i(p)) - Erfolgreich&lt;br /&gt;
&lt;br /&gt;
f) Aufgabe: t(T,t(T)) t(S,S)&lt;br /&gt;
S=T=t(T) - Erfolgreich, aber rekursiv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aufgabe 2&lt;br /&gt;
---------&lt;br /&gt;
a)&lt;br /&gt;
&lt;br /&gt;
% even(A). --ergibt yes, wenn A gerade ist.&lt;br /&gt;
% es werden immer genau zwei &amp;quot;Vorgänger&amp;quot; mit s(s(X)) gesucht&lt;br /&gt;
even(0).&lt;br /&gt;
even(s(s(X))):-even(X).&lt;br /&gt;
&lt;br /&gt;
b)&lt;br /&gt;
&lt;br /&gt;
% odd(A). --ergibt yes, wenn A ungerade ist.&lt;br /&gt;
% ähnlich wie bei even, werden auch hier immer zwei &amp;quot;Vorgänger&amp;quot; &lt;br /&gt;
% mit s(s(x)) gesucht, % aber der Rekursionsabschluss ist &lt;br /&gt;
% nicht 0, sondern s(0), es folgt also immer noch ein &lt;br /&gt;
% letzter, sozusagen &amp;quot;ungrader Schritt&amp;quot;.&lt;br /&gt;
odd(s(0)).&lt;br /&gt;
odd(s(s(X))):-odd(X).&lt;br /&gt;
&lt;br /&gt;
c)&lt;br /&gt;
&lt;br /&gt;
% le(A,B). -- ergibt yes, wenn A kleiner gleich B ist.&lt;br /&gt;
le(X,X).&lt;br /&gt;
le(X,s(Y)):-le(X,Y).&lt;br /&gt;
&lt;br /&gt;
%%% und gleich noch die Variante mit Typprüfung. Dazu wird&lt;br /&gt;
%%% zuerst der Typtest aus dem Script mit verwendet:&lt;br /&gt;
&lt;br /&gt;
% peano(Term). -- Term ist ein Peano-Term.&lt;br /&gt;
peano(0).&lt;br /&gt;
peano(s(X)):-peano(X).&lt;br /&gt;
&lt;br /&gt;
% le2(A,B) -- ergibt yes, wenn A kleiner gleich B ist und&lt;br /&gt;
%             beides Peano-Terme sind.&lt;br /&gt;
le2(X,X):-peano(X).&lt;br /&gt;
le2(X,s(Y)):-le2(X,Y).&lt;br /&gt;
&lt;br /&gt;
%%% Der Vergleich beider Varianten zeigt, dass le/2 den Vorteil&lt;br /&gt;
%%% hat, dass es schneller zu einem Ergebnis kommt, da der Fall,&lt;br /&gt;
%%% dass zwei gleiche Terme übergeben werden, sofort zu yes&lt;br /&gt;
%%% führt. In diesem Fall (der in der Rekursion immer auftritt,&lt;br /&gt;
%%% falls A &amp;lt;= B gilt), muss bei le2/2 noch die Rekursion von&lt;br /&gt;
%%% peano/1 durchgelaufen werden. Dadurch wird allerdings erreicht,&lt;br /&gt;
%%% dass nur Peano-Zahlen yes ergeben können, und nicht etwa auch&lt;br /&gt;
%%% le(s(muell),s(muell)).&lt;br /&gt;
%%% Interessant ist auch die Reaktion auf die vollständig&lt;br /&gt;
%%% uninstanziierte Anfrage: le/2 liefert nur teilinstanziierte&lt;br /&gt;
%%% Antworten, während le2/2 nur die vollständig instanziierten&lt;br /&gt;
%%% Fälle von Gleichheit erreicht.&lt;br /&gt;
&lt;br /&gt;
d)&lt;br /&gt;
&lt;br /&gt;
%%% Gefordert war eine Multiplikation, also sollte auch eine&lt;br /&gt;
%%% Multiplikation implementiert werden.&lt;br /&gt;
&lt;br /&gt;
%add(Summand1,Summand2,Summe) aus dem Script:&lt;br /&gt;
add(0,X,X).&lt;br /&gt;
add(s(X),Y,s(R)):-add(X,Y,R).&lt;br /&gt;
&lt;br /&gt;
%mult(A,B,C). -- multipliziert die Peanozahlen A und B, das&lt;br /&gt;
%                Ergebnis ist C&lt;br /&gt;
% X*0=0&lt;br /&gt;
mult(X,0,0).&lt;br /&gt;
% Rekursionsabschluss: X*1=X&lt;br /&gt;
mult(X,s(0),X). &lt;br /&gt;
% sonst führen wir die Multiplikation auf die Addition zurück &lt;br /&gt;
% 5 Rekursion: x*s(y)= (x*y) + x, dazu führen wir den Zwischenwert&lt;br /&gt;
% im &amp;quot;IntermediateResult&amp;quot; mit.&lt;br /&gt;
mult(X,s(Y),R):- mult(X,Y,IR),add(X,IR,R).&lt;br /&gt;
&lt;br /&gt;
%%% Nur für den Fall das jemand wissen will wie eine&lt;br /&gt;
%%% Subtraktion ginge: sub ist dann eigentlich dasselbe, wie &lt;br /&gt;
%%% add aus dem Script, nur die Argumentpositionen haben &lt;br /&gt;
%%% sich verändert. Man könnte schreiben: sub(X,Y,R):-add(Y,R,X).&lt;br /&gt;
&lt;br /&gt;
%sub(A,B,C). -- subtrahiert die Peanozahlen A und B, das&lt;br /&gt;
%               Ergebnis ist C oder &amp;#039;no&amp;#039;, wenn A-B&amp;lt;0.&lt;br /&gt;
sub(X,0,X).&lt;br /&gt;
sub(s(X),s(Y),R):-sub(X,Y,R).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Test ergab für Teilaufgabe a:&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
?- even(0).&lt;br /&gt;
Yes&lt;br /&gt;
?- even(s(0)).&lt;br /&gt;
No&lt;br /&gt;
?- even(X).&lt;br /&gt;
X = 0 ;&lt;br /&gt;
X = s(s(0)) ;&lt;br /&gt;
X = s(s(s(s(0))))&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Test ergab für Teilaufgabe b:&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
?- odd(0).&lt;br /&gt;
No&lt;br /&gt;
?- odd(s(0)).&lt;br /&gt;
Yes&lt;br /&gt;
?- odd(X).&lt;br /&gt;
X = s(0) ;&lt;br /&gt;
X = s(s(s(0))) ;&lt;br /&gt;
X = s(s(s(s(s(0)))))&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Test ergab für Teilaufgabe c:&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
?-    le(s(0),s(s(0))).&lt;br /&gt;
Yes&lt;br /&gt;
?- le(s(s(0)),s(s(0))).&lt;br /&gt;
Yes&lt;br /&gt;
?- le(s(s(s(0))),s(s(0))).&lt;br /&gt;
No&lt;br /&gt;
?- le(s(s(s(0))),s(s(s(0)))).&lt;br /&gt;
Yes&lt;br /&gt;
?- le(s(s(s(0))),s(s(s(s(0))))).&lt;br /&gt;
Yes&lt;br /&gt;
?- le(s(s(s(0))),s(s(s(s(s(0)))))).&lt;br /&gt;
Yes&lt;br /&gt;
?- le(0,0).&lt;br /&gt;
Yes&lt;br /&gt;
?- le(0,s(0)).&lt;br /&gt;
Yes&lt;br /&gt;
?- le(s(0),0).&lt;br /&gt;
No&lt;br /&gt;
?- le(s(s(0)),X).&lt;br /&gt;
X = s(s(0)) ;&lt;br /&gt;
X = s(s(s(0))) ;&lt;br /&gt;
X = s(s(s(s(0)))) ;&lt;br /&gt;
X = s(s(s(s(s(0))))) ;&lt;br /&gt;
X = s(s(s(s(s(s(0)))))) ;&lt;br /&gt;
X = s(s(s(s(s(s(s(0))))))) ;&lt;br /&gt;
X = s(s(s(s(s(s(s(s(0)))))))) ;&lt;br /&gt;
X = s(s(s(s(s(s(s(s(s(0))))))))) ;&lt;br /&gt;
X = s(s(s(s(s(s(s(s(s(s(...)))))))))) ;&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
?- le(X,s(s(s(0)))).&lt;br /&gt;
X = s(s(s(0))) ;&lt;br /&gt;
X = s(s(0)) ;&lt;br /&gt;
X = s(0) ;&lt;br /&gt;
X = 0 ;&lt;br /&gt;
No&lt;br /&gt;
&lt;br /&gt;
?- le(s(muell),s(muell)).&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
Und nun le2:&lt;br /&gt;
------------&lt;br /&gt;
?- le2(0,0).&lt;br /&gt;
Yes&lt;br /&gt;
?- le2(s(0),s(s(0))).&lt;br /&gt;
Yes&lt;br /&gt;
?- le2(s(s(s(0))),s(s(0))).&lt;br /&gt;
No&lt;br /&gt;
?- le2(muell,s(muell)).&lt;br /&gt;
No&lt;br /&gt;
?- le2(s(muell),s(muell)).&lt;br /&gt;
No&lt;br /&gt;
&lt;br /&gt;
Und nun noch der Trace:&lt;br /&gt;
-----------------------&lt;br /&gt;
?- trace(le2).&lt;br /&gt;
%         le2/2: [call, redo, exit, fail]&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
[debug] ?- trace(peano).&lt;br /&gt;
%         peano/1: [call, redo, exit, fail]&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
[debug] ?- le2(X,Y).&lt;br /&gt;
 T Call: (7) le2(_G415, _G416)&lt;br /&gt;
 T Call: (8) peano(_G415)&lt;br /&gt;
 T Exit: (8) peano(0)&lt;br /&gt;
 T Exit: (7) le2(0, 0)&lt;br /&gt;
&lt;br /&gt;
X = 0&lt;br /&gt;
Y = 0 ;&lt;br /&gt;
 T Redo: (8) peano(_G415)&lt;br /&gt;
 T Call: (9) peano(_G480)&lt;br /&gt;
 T Exit: (9) peano(0)&lt;br /&gt;
 T Exit: (8) peano(s(0))&lt;br /&gt;
 T Exit: (7) le2(s(0), s(0))&lt;br /&gt;
&lt;br /&gt;
X = s(0)&lt;br /&gt;
Y = s(0) ;&lt;br /&gt;
 T Redo: (9) peano(_G480)&lt;br /&gt;
 T Call: (10) peano(_G482)&lt;br /&gt;
 T Exit: (10) peano(0)&lt;br /&gt;
 T Exit: (9) peano(s(0))&lt;br /&gt;
 T Exit: (8) peano(s(s(0)))&lt;br /&gt;
 T Exit: (7) le2(s(s(0)), s(s(0)))&lt;br /&gt;
&lt;br /&gt;
X = s(s(0))&lt;br /&gt;
Y = s(s(0)) &lt;br /&gt;
&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Test ergab für Teilaufgabe d:&lt;br /&gt;
--------------------------------&lt;br /&gt;
&lt;br /&gt;
?- mult(s(s(s(s(0)))),s(s(s(s(0)))),X).&lt;br /&gt;
X = s(s(s(s(s(s(s(s(s(s(...)))))))))) &lt;br /&gt;
Yes&lt;br /&gt;
?- mult(s(s(s(s(0)))),s(s(s(s(0)))),X),peano2int(X,N).&lt;br /&gt;
X = s(s(s(s(s(s(s(s(s(s(...))))))))))&lt;br /&gt;
N = 16 &lt;br /&gt;
Yes&lt;br /&gt;
?- mult(s(s(s(s(0)))),s((0)),X),peano2int(X,N).&lt;br /&gt;
X = s(s(s(s(0))))&lt;br /&gt;
N = 4 &lt;br /&gt;
Yes&lt;br /&gt;
?- mult(s(s(s(s(0)))),s(s(0)),X),peano2int(X,N).&lt;br /&gt;
X = s(s(s(s(s(s(s(s(0))))))))&lt;br /&gt;
N = 8 &lt;br /&gt;
Yes&lt;br /&gt;
?- mult(s(s(s(s(0)))),0,X),peano2int(X,N).&lt;br /&gt;
X = 0&lt;br /&gt;
N = 0 &lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aufgabe 3&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
peano2int(0,0).&lt;br /&gt;
peano2int(s(Peano),Number):-peano2int(Peano,Predecessor),Number is Predecessor+1.&lt;br /&gt;
&lt;br /&gt;
Test:&lt;br /&gt;
(Peano -&amp;gt; Integer)&lt;br /&gt;
?- peano2int(s(s(s(s(0)))),X).&lt;br /&gt;
&lt;br /&gt;
X = 4 ;&lt;br /&gt;
&lt;br /&gt;
No&lt;br /&gt;
&lt;br /&gt;
(Integer -&amp;gt; Peano)&lt;br /&gt;
?- peano2int(X,5).&lt;br /&gt;
&lt;br /&gt;
X = s(s(s(s(s(0))))) ;&lt;br /&gt;
^C&lt;br /&gt;
Action (h for help) ? abort&lt;br /&gt;
% Execution Aborted&lt;br /&gt;
&lt;br /&gt;
Es wird endlos weitergesucht. Das Prädikat ist also nicht&lt;br /&gt;
richtungsunabhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aufgabe 4&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
In der Vorlesung und den Übungen sind u.a. die folgenden rekursiven&lt;br /&gt;
Bezugnahmen aufgetaucht:&lt;br /&gt;
- Mengen und deren rekursive Definition in EBNF&lt;br /&gt;
- Rekursive Datenstrukturen wie z.B. Peano-Zahlen&lt;br /&gt;
Diese beziehen sich nur auf die syntaktische Form.&lt;br /&gt;
- Rekursive Prädikate&lt;br /&gt;
Dieses sind rekursive Berechnungsvorschriften.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>fsrwiki_&gt;1illig</name></author>
	</entry>
</feed>