FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

[P1] letze vorlesung

[P1] letze vorlesung 2003-02-15 17:39
nightfly
hi leidensgenossen,
ich wollte fragen, ob jemand die klausurrelevanten punkte von der tafel abgeschrieben hat und sie bitte hier posten könnte. wäre sehr nett ;)
ich saß leider vorne rechts und konnte nix lesen O_o
wir sehen uns mittwoch (wo eigentlich)

Re: [P1] letze vorlesung 2003-02-15 17:55
meiki
Prolog:

Relationen
Unifikation
Suche , Backtraking
Funktionale Auswertungsumgebung
Richtungsunabhängigkeit

Scheme:

Auswertung von Ausdrücken
Rekursionen
Funktionen höherer Ordnung
Imperative Sprachelemente
Bezugstransparenz


so das war alles
meike

Re: [P1] letze vorlesung 2003-02-15 18:06
nightfly
das ging flott :D
big thx

Re: [P1] letze vorlesung 2003-02-15 18:22
meiki
tjaja so bin ich *fg*

büdde büdde
meike

Re: [P1] letze vorlesung 2003-02-16 11:47
Frischling
Hi Leute,

was ist denn mit Imperative Sprachelemente gemeint??
Die allgemeinen Standardfunktionen von Scheme, oder???

LG BIA

Re: [P1] letze vorlesung 2003-02-16 12:48
Tzwoenn
Schleifenkonstrukte und Bedingungskonstrukte würd ich mal sagen, denn die zeichnen imperative Sprachen aus.

Re: [P1] letze vorlesung 2003-02-16 13:18
Zaphod
Ich dachte, damit seien alle Elemente gemeint, die void als Rückgabewert haben, also auch sowas wie (set! var wert) oder vielleicht sogar (define var wert)… lang ist's her..

Re: [P1] letze vorlesung 2003-02-17 02:17
MoKrates
Tot und Teufel! Naja, Zaphod hat fast recht. "set!" und "append!" eventuell auch schleifenkonstrukte koennten gemeint sein (vielleicht auch sowas wie "begin").
Bedingungen mit Sicherheit nicht, die sind in Scheme funktional ausgelegt.
Aber Zaphod. Es gibt keinen Typ 'void' in Scheme. die Ausrufezeichenfunktionen haben durchweg einen unspezifizierten Rueckgabewert, das "scheme" (nicht dr-scheme) zeigt als Rueckgabe, glaube ich, sogar # an.

Und Bedingungskonstrukte zeichnen bestimmt keine imperativen Sprachen aus. In der Tat habe ich noch keine Sprache kennengelernt, in der es keine Bedingungskonstrukte gaebe. Waer auch ziemlich schwierig, ohne… ,)

MoKrates

Re: [P1] letze vorlesung 2003-02-17 09:21
xeen9
Moin!

Ich kann behaupten, dass Scheme "void" zurückgibt, wenn es auf den unspezifizierten Rückgabewert trifft. Da muss ich Zaphod in Schutz nehmen..

"set!" macht das auf jeden Fall. Mo, erinnerst du dich an gestern, Dienstag, "(let ((d (set! n (+ n 1)))))"?

SK

Re: [P1] letze vorlesung 2003-02-17 15:41
MoKrates
Ich hab DRSCHEME grade mal hochgefahren, und folgendes eingegeben:
definitions: (define x 0) (define y 0) interactions: (set! x (set! y 5)) (display x) dabei wurde mir dann #<void> angezeigt.
Prinzipiell bedeutet das, dass es keinen Typ void gibt (in C und anderen Sprachen darf void auch nicht zugewiesen werden! Das gibt nen Compiler-fehler!).
Es ist ein Datenelement, dass keinen Typ besitzt, *aber* eine eigene Representation! Ein Element, das #<void> heisst. Die Ausgabe dessen wird von drscheme standardmaessig unterdrueckt, daher die Zuweisung und das Display fuer die Sichbarmachung.

MoKrates




Re: [P1] letze vorlesung 2003-02-17 16:03
Tzwoenn
Und Bedingungskonstrukte zeichnen bestimmt keine imperativen Sprachen aus. In der Tat habe ich noch keine Sprache kennengelernt, in der es keine Bedingungskonstrukte gaebe. Waer auch ziemlich schwierig, ohne… ,)

Kann mich beim besten Willen an keine Bedingungen bei Prolog erinnern [img]http://www.fb18.de/gfx/3.gif[/img]

Re: [P1] letze vorlesung 2003-02-17 17:01
TriPhoenix
Und Bedingungskonstrukte zeichnen bestimmt keine imperativen Sprachen aus. In der Tat habe ich noch keine Sprache kennengelernt, in der es keine Bedingungskonstrukte gaebe. Waer auch ziemlich schwierig, ohne… ,)

Kann mich beim besten Willen an keine Bedingungen bei Prolog erinnern [img]http://www.fb18.de/gfx/3.gif[/img]

Naja, die tatsache dass in einem a :- b. statement sich passende unifikationen ergeben, so dass man die Zeile auswerten kann, ist doch auch ne bedingung.



Re: [P1] letze vorlesung 2003-02-17 18:06
Anonymer User
Der R5RS sieht für Konstrukte wie set! etc. einen "nicht spezifizierten Rückgabewert" vor, d.h. man darf sich nicht darauf verlassen, was denn da zurück kommt. Bei viele Schemes heißt das dann entsprechend #<unspecified>, aber es ist irrelevant wie es denn heißt - wenn die Implementation plötzlich 1723 zurückgibt darf uns das nicht kümmern, denn der Rückgabewert ist "unspezifiziert". Dass DrScheme das dann "void" nennt ist schön für DrScheme, hat aber weder etwas (direkt) mit dem typ void aus C zu tun, noch mit Scheme als Sprache.

Und in Prolog ist *jede* Anweisung eine Bedingung. Nur wenn sie Wahr ist wird die nächste ausgeführt. A :- B, C. entspricht grob (if (and B C) A) plus Variablenbindungen.

Zu imperativen Sprachkonstrukten zählen alle Funktionen (set-car!, set-cdr!, append!) und special forms (set!), die ihre Argumente verändern, also "Seiteneffekte" haben. Dadurch geht referenzielle Transparenz flöten, was das ganze extrem unübersichtlich macht ;)

Wenn man sehr korrekt ist, kann man auch noch Ausgabefunktionen (display, write) als imperativ bezeichnen, da diese ebenso einen Seiteneffekt haben (die Ausgabe eben).


Re: [P1] letze vorlesung 2003-02-17 18:11
Anonymer User

Hey Leute,

kann mir jemand ma erklären, was Richtungsunabhängigkeit GENAU bedeutet?!

greetings chris

p.s: in Prolog gibt es Bedingungen, habe ich z.B bei Bubble-Sort verwendet, hier der Ausschnitt:

bubbleAID1([E1|[E2|Rest]],R) :- E1 @> E2 ->
bubbleAID1([E1|Rest],R1),
R = [E2|R1];
bubbleAID1([E2|Rest],R1),
R = [E1|R1].


Re: [P1] letze vorlesung 2003-02-17 18:11
Anonymer User

Hey Leute,

kann mir jemand ma erklären, was Richtungsunabhängigkeit GENAU bedeutet?!

greetings chris

p.s: in Prolog gibt es Bedingungen, habe ich z.B bei Bubble-Sort verwendet, hier der Ausschnitt:

bubbleAID1([E1|[E2|Rest]],R) :- E1 @> E2 ->
bubbleAID1([E1|Rest],R1),
R = [E2|R1];
bubbleAID1([E2|Rest],R1),
R = [E1|R1].


Re: [P1] letze vorlesung 2003-02-17 19:04
UncleOwen
Ein Prädikat ist genau dann richtungsunabhängig, wenn es
- in allen Instantiierungsvarianten terminiert
- in allen Instantiierungsvarianten das richtige Ergebnis liefert.

Re: [P1] letze vorlesung 2003-02-17 19:41
Anonymer User
so einfach is das…hab vielen dank,

greetings chris