Funktionale Programmierung mit Haskell



  • Hallo,

    wird die funktionale Programmierung mit Haskell in der Industrie viel eingesetzt?
    Und wie sieht die Zukunft der funktionalen Programmierung aus?

    Ich überlege mit gerade, ob es sich lohnt eine Vorlesung über diese Sprache zu belegen(muss mich zwischen zwei Vorlesungen entscheiden). Dazu wäre es gut, wenn ich wüsste, was man damit in der Arbeitswelt anfangen kann.

    Mfg



  • schau mal bei tiobe, wo Haskell steht.



  • Ich programmiere gerade mit Scheme (ein Lispdialekt) aber auch nur innerhalb der Uni. Funktionale Programmiersprachen sind wohl eher in Forschung und Entwicklung zu finden aber sind im kommen ... siehe Googles map&reduce Framework. Auch Prolog oder Antwortmengenprogrammierung wird in industriell eingesetzt (NASA). Ausserdem schadet es nie, seinen Horizont zu erweitern ... es sind ganz andere Konzepte, als die imperativen Sprachen bieten.



  • wobei ich leise Zweifel hege, daß es in der Welt des Business gängig ist, Leibniz'sche Monadentheorie zu studieren, um ein Zeichen auf dem Bildschirm ausgeben zu können oder gar eine Datei einzulesen.



  • knivil schrieb:

    Ich programmiere gerade mit Scheme (ein Lispdialekt) aber auch nur innerhalb der Uni.

    Das ist aber keine funktionale Programmiersprache.



  • Das ist aber keine funktionale Programmiersprache.

    Das kommt drauf an, ab wann bei dir Funktional anfaengt. Leider muss wikipedia wieder herhalten (manchmal keine gute Quelle):

    Historisch ist LISP als die erste funktionale Programmiersprache aufzufassen;



  • knivil schrieb:

    Das ist aber keine funktionale Programmiersprache.

    Das kommt drauf an, ab wann bei dir Funktional anfaengt. Leider muss wikipedia wieder herhalten (manchmal keine gute Quelle):

    Historisch ist LISP als die erste funktionale Programmiersprache aufzufassen;

    So:

    en.wikipedia.org schrieb:

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data.



  • Vorlesung schadet bestimmt nicht ... ich hab mir das mal angeschaut weil es mich interessierte.. aber benutzen tu ich es nie 😉 und sonst wohl wie schon erwähnt in der wissenschaft .. damit lassen sich halt mathematische dinge besser realisieren



  • the evaluation of mathematical functions and avoids state and mutable data

    Ja, das geht auch mit Lisp/Scheme nativ. Auf der englischen wikipedia-Seite zu Lisp steht "multi-paradigm: functional, procedural, reflective".

    Auf der englischen wikipedia-Seite zu Functional Programming steht:

    notable functional programming languages used in industry and commercial applications include Erlang,[2] OCaml,[3] Haskell,[4] Scheme[5][6] and ...



  • so gehts nicht schrieb:

    en.wikipedia.org schrieb:

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data.

    Es ist unmöglich ein Hello World Programm zu schreiben wenn man sich an diese Definition halten muss.

    Verwirrend irgendwie.



  • Shade Of Mine schrieb:

    so gehts nicht schrieb:

    en.wikipedia.org schrieb:

    In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data.

    Es ist unmöglich ein Hello World Programm zu schreiben wenn man sich an diese Definition halten muss.

    Verwirrend irgendwie.

    aeeeehh .. nö wieso denn



  • Shade Of Mine schrieb:

    Es ist unmöglich ein Hello World Programm zu schreiben wenn man sich an diese Definition halten muss.

    deshalb enthält Haskell das Konzept der IO-Modaden, um zustandsabhängige Aktivitäten funktional zu erledigen.



  • Tippfehler, gemeint war Monaden



  • Und die Frage ist eigentlich auch nur, wie man "Hello-World-Programm" definiert. Man kann in einer rein funktionalen Sprache (ohne Monaden...) zwar kein Programm schreiben, dass "Hello World" irgendwohin ausgibt, aber durchaus eins, dass den String "Hello World" liefert. 🙄



  • Firewall schrieb:

    Und wie sieht die Zukunft der funktionalen Programmierung aus?

    das würde ich auch gerne wissen - momentan sieht es so aus, als würden bestimmte funktionale Konstrukte wie lambda, map, reduce usw.. ebenso wie klassenbasierte OO-Modelle in neuere Sprachen fast schon "standardmäßig" einfließen, aber 100% reine funktionale Programmierung scheint doch irgendwie inpraktikabel. Jedenfalls wollen, relativ gesehen, die wenigsten Leute FP außerhalb des akademischen Bereichs benutzen.

    Es ist wohl einfach zu umständlich, syntaktische "Handstände" oder kategorientheoretische "Tricks" anwenden zu müssen, nur um so Selbstverständliches wie "Zustand" und E/A zu programmieren, und die natürliche algorithmische Denkweise des Menschen ist imperativ - niemand schreibt seinen Einkaufszettel als funktionales Programm, sondern "1. .. 2. .. 3. .."

    my EUR 0.02



  • PRIEST schrieb:

    aeeeehh .. nö wieso denn

    Ausgabe hat mit Seiteneffekten zu tun.
    Ich will damit nur aufzeigen, "keine Seiteneffekte" ist eine gute Idee, aber kann nie und nimmer ein Dogma sein. Denn du brauchst Seiteneffekte. Ohne ihnen kannst du nicht mit deiner umwelt interagieren.



  • Man nehme etwas Lisp und etwas von C und raus kommen so Sachen wie Javascript, Ruby ... Lisp wird nicht umsonst als die Mutter "aller" Programmiersprachen bezeichnet. In "Struktur und Interpretation von Computerprogrammen (bzw. in den video lectures) ist eine Einfuehrung gegeben. Auch ist dargestellt, warum man Seiteneffekte braucht.



  • Shade Of Mine schrieb:

    Ich will damit nur aufzeigen, "keine Seiteneffekte" ist eine gute Idee, aber kann nie und nimmer ein Dogma sein.

    Erhebt das etwa irgendwer zum Dogma? </Rhetorische Frage>



  • knivil schrieb:

    ... Lisp wird nicht umsonst als die Mutter "aller" Programmiersprachen bezeichnet.

    echt? Fortran, Algol, Smalltalk und Simula waren aber auch nicht ganz unwichtig in der Ahnenreihe heutiger Prog.Sprachen.



  • u_ser-l schrieb:

    knivil schrieb:

    ... Lisp wird nicht umsonst als die Mutter "aller" Programmiersprachen bezeichnet.

    echt? Fortran, Algol, Smalltalk und Simula waren aber auch nicht ganz unwichtig in der Ahnenreihe heutiger Prog.Sprachen.

    *hihihi* Smalltalk wurde in Lisp als Prototyp entworfen :). Aber natürlich hat Lisp wenig mit den "statischen Sprachen" wie Fortran, Algol und Simula zu tun.


Log in to reply