Zum Inhalt springen

Diskussion:Funktionale Programmierung

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 19. November 2005 um 19:19 Uhr durch Archiv (Diskussion | Beiträge) (von Funktionale Programmiersprache). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Speziell an funktionalen Sprachen ist unter anderem, dass hier lokale Funktionen definiert werden können, wie dies in imperativen Sprachen mit lokalen Variablen möglich ist.

ist falsch, zwar in FORTRAN geht es nicht, aber in den Jahrzehnten danach ist es doch ziemlich allgemein möglich geworden Ptrs 00:14, 26. Apr 2003 (CEST)

Fehlt hier nicht noch die Programmiersprache des Mathematik-Programms 'Maple'? --Mikroprozessor 20:01, 2. Apr 2005 (CEST)

Nein. Die Maple-Programmiersprache hat soweit ich weiß Seiteneffekte und verletzt damit eine wichtige Eigenschaft funktionaler Sprachen, nämlich die Werttreue. --fschoenm 02:02, 3. Apr 2005 (CEST)

Öh, hab mal bei der Auswertungsstrategie geändert. So wie unser Prof. uns das erklärt hat (und wie es im Skript seines Kollegen steht) ist Lazy-Evaluation nur eine Variante bei der Nicht-Strikten Auswertung ist. --Prometeus 18:50, 8. Apr 2005 (CEST)

Sehe ich bisher nicht so. Was sollen denn andere Variante einer nicht-strikten Auswertung sein außer der Bedarfsauswertung? Steht das in eurem Skript? Kann man sich das anschauen? --fschoenm 01:39, 9. Apr 2005 (CEST)
Also im Prinzip ist das, was du Lazy-Evaluation nennst unsere Definition der Nicht-Strikten Auswertung und was wir Lazy-Evaluation nennen ist das Konzept, dass doppelt vorkommende Teilausdrücke nicht doppelt sondern nur einmal ausgewertet werden. Z.b. führt so etwas wie
square x = x * x
zu folgender Auswertung
square (3 + 5) = (3 + 5) * (3 + 5) = 8 * 8 = 64
Ohne LazyEvaluation ergäbe das
square (3 + 5) = (3 + 5) * (3 + 5) = 8 * (3 + 5) = 8 * 8 = 64
Nachlesen könntest du das z.B. auf http://programmierung.informatik.rwth-aachen.de
Wahrscheinlich haben wir beide Recht und es ist einfach eine weit verbreitete begriffliche Ungenaugikeit ;-) --Prometeus 21:19, 9. Apr 2005 (CEST)
Hab auf deiner angegebenen Website keinen Hinweis gefunden, aber auch nicht so lange gesucht. Aber Non-strict functional languages have another powerful feature: they only evaluate as much of the program as is required to get the answer - this is called lazy evaluation [1] klingt für mich eher nach der mir bekannten Definition. Ich habe auch das Gefühl, dass ich das von dir im Beispiel gezeigte Konzept auch schon mal in irgendeiner Vorlesung gesehen habe – allerdings nicht unter dem Schlagwort lazy evaluation. --fschoenm 21:32, 9. Apr 2005 (CEST)
Hm, wenn das von offizieller Seite kommt würd ich nat. auch die Definition nehmen, die für dich spricht, klar. Uns wurde es halt so erklärt. Auf der Seite müsstest du unter Literatur das Skript vom Giesl finden, da ist das mehr oder weniger so erklärt, aber wie gesagt: Offizielle Seite geht natürlich vor. --Prometeus 21:54, 9. Apr 2005 (CEST)

Überarbeiten

bitte zumindestens erstmal die einleitung verständlich machen.--Archiv 14:51, 15. Nov 2005 (CET)

Volle Zustimmung! Ich möchte dringend nahelegen, die Änderungen vom 4. November rückgängig zu machen. Die neue Einleitung hat kaum mehr Informationen als die alte, ist aber viel unverständlicher und umständlicher geschrieben. Begriffe wie "zuvorderst" und "faßlicher" klingen, als stammte der Text aus einem Lehrbuch der 70er Jahre. -- --Einmaliger 09:45, 18. Nov 2005 (CET)

hab die einleitung ausm englischen übernommen. lass überarbeiten drin, da der rest bisschen flüssiger gestaltet werden könnte. --Archiv 18:19, 19. Nov 2005 (CET)