1. Foren
  2. Kommentare
  3. Software-Entwicklung-Forum
  4. Alle Kommentare zum Artikel
  5. › Software…

Funktionale Programmierung

Neue Foren im Freiraum! Raumfahrt und freie Software haben jetzt einen Platz, die Games tummeln sich jetzt alle in einem Forum.
  1. Thema

Neues Thema


  1. Funktionale Programmierung

    Autor: Ymi_Yugy 25.09.18 - 17:09

    Funktionale Programmiersprachen sind sicher nicht die erste Wahl, wenn man schnell Ergebnisse erziehlen möchte, aber es lohnt sich durchaus parallel zum lernen der ersten Programmiersprache auch mal in funktionale hineinzuschnuppern oder sich zumindest mit den Konzepten funktionaler Programmierung auseinanderzusetzen.
    Wenn man sich nämlich anschaut was für Features in letzter Zeit in populäre Sprachen Einzug halten, fällt auf das viele davon funktional sind.
    Da wären z.B. Lambdas in Java, std::optional in C++, usw.

    Ich persönlich kann da Haskell und insbesondere learn you a Haskell empfehlen.
    Man sollte sich zwar nicht der Illusion hingeben damit seine nächsten Projekte umzusetzen, nicht so sehr weil das mit der Sprache nicht möglich wäre, sondern weil es schwer ist andere zu finden die diese Sprache oder zumindest funktionale Programmierung einigermaßen beherrschen, aber all die Konzepte, die man dort lernt, helfen einem dann Ideen auch in anderen Sprachen deutlich präzieser und eleganter auszudrücken.

  2. Re: Funktionale Programmierung

    Autor: stiGGG 25.09.18 - 18:52

    Grundsätzlich Zustimmung, aber man sollte extrem aufpassen einem Neuling nicht zuviel auf einmal zuzumuten. Auch OOP Konzepte sollte man am Anfang erstmal ignorieren. Die Lernkurve beim Programmieren ist so dermaßen Steil, dass viele dann direkt aufgeben.

    Frage am Rande, zählst du std::optional zur funktionalen Welt, weil es auf gewisse Weise dem Konzept einer Monade entspricht? DAS sollte man auf jeden Fall nicht einem Anfänger versuchen zu erklären. Optionals an sich wegen mir (in Swift kommt man da zB überhaupt nicht drum rum), aber nicht die fast philosophische Theorie dahinter.

  3. Re: Funktionale Programmierung

    Autor: Ymi_Yugy 25.09.18 - 19:28

    Wie viel man einem Neuling zumuten kann ist ja immer sehr fallabhängig.
    Bezüglich OOP kann ich nicht ganz nachvollziehen, wieso da gerade bei Einsteigern so viel Wert drauf gelegt wird.
    Man muss schon ein ziemlich großes Programm schreiben, damit sich so ein Konzept wirklich lohnt. Davon dürften die meisten Einstiger erstmal ziemlich weit entfernt sein.
    Funktionale Konzepte lassen sich dagegen bei nahezu jedem Programm sinnvoll einbinden.

    Ebenso wenig sollte man gleich zu Beginn mit Monads Einfallen oder auf die Idee kommen man müsse erst mal die Regeln des Lambda Kalküls beweisen.
    Am Anfang lernt man ja eher so Dinge, wie man z.B. eine Funktion/Methode schreibt und frührer oder später werden viele einfache Algorithmen implementiert und in nicht wenigen Fällen dürften diese Funktionen nicht wohldefiniert sein, deshalb Optionals.
    Als funktional betrachte ich die, weil die klassischen Varianten des Fehlermanagements in imperativen Sprachen ja anders aussahen.
    In C war der Rückgabewert der Fehler und der eigentliche Wert wird in einem Pointer abgelegt.
    In Java gibt es Exceptions, usw.

  4. Re: Funktionale Programmierung

    Autor: apriori 25.09.18 - 19:45

    > Frage am Rande, zählst du std::optional zur funktionalen Welt, weil es auf
    > gewisse Weise dem Konzept einer Monade entspricht? DAS sollte man auf jeden
    > Fall nicht einem Anfänger versuchen zu erklären. Optionals an sich wegen
    > mir (in Swift kommt man da zB überhaupt nicht drum rum), aber nicht die
    > fast philosophische Theorie dahinter.
    Ist zwar OT, aber std::optional hat defakto nichts mit der Maybe Monade in Haskell gemein. Gerademal die Eigenschaft zweier Mögliche Wertausprägungen ist vorhanden. Sonst, keinerlei Komposition (Bind), keinerlei apply (Functor), keinerlei Alternative. Es ist zwar "ganz nett" endlich mal dann Optionalität nicht mit einem Nullpointer ausdrückt zu haben, aber alle anderen Vorteile sind wahrscheinlich nichtmal wahrgenommen worden.

    Mal abgesehen davon, dass es eine absolut wahnwitzig bescheuerte Idee ist, dass T implizit zu std::optional<T> castet.

  5. Re: Funktionale Programmierung

    Autor: Hello_World 25.09.18 - 20:17

    stiGGG schrieb:
    --------------------------------------------------------------------------------
    > Grundsätzlich Zustimmung, aber man sollte extrem aufpassen einem Neuling
    > nicht zuviel auf einmal zuzumuten.
    Stimmt, deswegen sollte man auf unnötige Komplexität wie z. B. mutable state und Seiteneffekte zu Anfang einfach verzichten.

    > Auch OOP Konzepte sollte man am Anfang erstmal ignorieren.
    Und später auch. Dijkstra hat das schon richtig erkannt: „Object-oriented programming is an exceptionally bad idea which could only have originated in California“.

    > Frage am Rande, zählst du std::optional zur funktionalen Welt, weil es auf
    > gewisse Weise dem Konzept einer Monade entspricht?
    std::optional ist schon allein deswegen keine Monade, weil es mutable ist.

  1. Thema

Neues Thema


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Informatiker / Informatikerin (m/w/d)
    NLQ Hildesheim, Hildesheim
  2. Senior Marketing Data Engineer (m/w/d)
    Lidl Digital, Berlin
  3. Linux-Systemadministrator (m/w/d)
    Bayerisches Landesamt für Steuern, Nürnberg, Regensburg, München
  4. Integration Solution Engineer (w/m/d)
    Dürr IT Service GmbH, Bietigheim-Bissingen

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. 799€ (günstig wie nie, UVP 1.649€)
  2. 114,99€ (günstig wie nie)
  3. 600,89€ (günstig wie nie)
  4. (u. a. Anno 1800 für 17,99€, Resident Evil Village für 21,99€, Dead Rising 4: Frank's Big...


Haben wir etwas übersehen?

E-Mail an news@golem.de