Sie sind nicht verbunden. Loggen Sie sich ein oder registrieren Sie sich

Neues Unterforum "Funktionale Programmierung"

Nach unten  Nachricht [Seite 1 von 1]

1 Neues Unterforum "Funktionale Programmierung" am Mi Okt 06, 2010 12:56 am

pSub


Hi,

da es hier nur Unterforen über imperative Programmiersprachen gibt, würde ein allgemeines Unterforum über funktionale Sprachen das "Angebot" ein bisschen abrunden und so für neuen Diskussionsstoff sorgen. Ich nehme jetzt einfach mal an, das viele hier noch nicht viel mit funktionaler Programmierung zu tun hatten, dadurch könnte ein bisschen mehr Wind ins Forum kommen und vielleicht auch ein paar mehr (aktive) Mitglieder.

Was haltet ihr davon?

http://www.pascal-wittmann.de

Niklas Admin

avatar
Admin
Ich bin für alle Ideen offen. Wenn ich dich richtig verstanden habe willst du das ich C++/C#, MicrosoftVisualBasic, Delphi und Java in eine Kategorie mache die Funktionale Programmierung heißt?


_________________
Mit freundlichen Grüßen
Niklas
http://vbs-linux.dbzworld.org

pSub


Nein, Sprachen wie C, C++, C# (ok das hat auch funktionale Elemente), VB etc. sind imperative [1] Sprachen. In funktionalen [2] Sprachen bestehen Programm nur aus Funktionen, es gibt keine Schleifen (wird durch Rekursion ersetzt), Variablen und noch ein paar Eigenschaften mehr wie etwa die Übergabe von Funktionen als Parameter an Funktionen. Der größte Vorteil einer funktionalen Sprache ist, dass sie keine Nebeneffekte haben. D.h. eine Funktion macht, egal wann oder von wo du sie aufrufst immer das gleiche (natürlich nur wenn die Parameter die selben sind). Zudem lassen sich manche (viele) Probleme viel eleganter in funktionalen Sprachen beschreiben. Beispiele für funktionale Sprachen sind Haskell, Scheme oder Scala. Wobei ich jedem empfehle sich einmal mit Haskell auseinander zu setzen.

Noch ein "Hinweis", die "funktionale Welt" mag am Anfang für jemanden der aus der "imperativen Welt" kommt ein bisschen befremdlich wirken, das ändert sich aber schnell.

[1] http://de.wikipedia.org/wiki/Imperative_Programmierung
[2] http://de.wikipedia.org/wiki/Funktionale_Programmierung

http://www.pascal-wittmann.de

Niklas Admin

avatar
Admin
Warum sollte Visual Basic und C++/C# keine funktionale Sprache sein???? In Visual Basic arbeite ich fast nur mit Funktionen und ein dem C Block geht es gar nicht ohne. Das ist jetzt schon Verwirrend, aber ich kann das Forum machen wenn du willst.


_________________
Mit freundlichen Grüßen
Niklas
http://vbs-linux.dbzworld.org

pSub


Vielleicht hilft dieses Zitat:
"Was ist funktionale Programmierung? Darauf gibt es eine kurze und bündige Antwort: das Programmieren mit mathematischen Funktionen. Dies sind Funktionen, die bei gleichem Eingabewerten immer den gleichen Rückgabewert zurückliefern. Diese Zusicherung impliziert, dass der Wert einer Funktion über den ganzen Programmverlauf gleich ist, so dass der Funktionsaufruf durch den Wert der Funktion ersetzt werden kann. Ein Funktionsaufruf verhält sich wie Abfragen an eine (unendlich) große Tabelle." http://www.linux-magazin.de/Online-Artikel/Funktionale-Programmierung-1-Grundzuege

Der Artikel aus dem es stammt behandelt genau diese Frage. Du siehst vielleicht schon, das dieser Grundsatz bei C, C++ etc. verletzt ist. Dort hängt der Rückgabewert der Funktion nicht alleine von den Eingabeparametern ab, sondern z.B. auch von Dateien, die innerhalb dieser Funktion gelesen werden. Hoffe es wird dadurch ein bisschen klarer, wenn nicht lese am besten einmal den Wikipedia-Artikel oder den aus dem Linux Magazin.

Noch eine kleine Frage, warum schreibst du C++/C#, wobei die beiden Sprachen doch bis auf das C nicht so viel gemeinsam haben?

http://www.pascal-wittmann.de

Niklas Admin

avatar
Admin
Es gibt doch bestimmt Gemeinsamkeiten die diese beiden Sprachen haben, deswegen schreibe ich sie als Block. Natürlich und das will ich gar nicht abstreiten sind es unterschiedliche Sprachen, aber eine gewisse Brücke gibt es.


_________________
Mit freundlichen Grüßen
Niklas
http://vbs-linux.dbzworld.org

Gesponserte Inhalte


Nach oben  Nachricht [Seite 1 von 1]

Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten