Ich versuche mich mit verschiedenen Arten von Sprachen vertraut zu machen, um die Bereiche zu verstehen, in denen jeder von ihnen extrem gut ist. Bisher habe ich mich mit C beschäftigt - einer prozeduralen Sprache, C ++ & Java - statisch typisierten objektorientierten Sprachen und groovig - einer dynamisch typisierten objektorientierten Sprache.
Jede Programmiersprache wurde wahrscheinlich gestartet, um einem Bedarf gerecht zu werden. Und ich gehe davon aus, dass jede Sprache in mindestens einer Sache extrem gut ist, weshalb sie in einem bestimmten Bereich oder Bereich zum Standard wird. Wie C ist C ++ in Bereichen wie der Browser- oder Spieleentwicklung zum Standard geworden. Python in der Linux-Welt für seine einfache Skriptfähigkeit, Java in der Unternehmenswelt usw.
Jetzt bin ich daran interessiert, eine funktionale Programmiersprache wie Clojure oder Lisp zu lernen. Wo werden funktionale Programmiersprachen in realen Szenarien verwendet? Ich glaube nicht, dass man Clojure oder Lisp für die Entwicklung von Anwendungen oder Benutzeroberflächen verwenden würde. Welche Art von Projekten sollte ich nach Abschluss der grundlegenden Tutorials und Lernressourcen durchführen, um ein kurzes Verständnis für die Implementierung der funktionalen Programmierung zu erhalten? Und empfehlen Sie dringend eine bestimmte Sprache, wie z. B. Clojure?
quelle
Antworten:
Sie sagen, reale funktionale Programmierung, denke ich, Erlang.
http://www.erlang.org/
quelle
Es gibt eine großartige Vorlesungsreihe über funktionale Programmierung von der Stanford University. Sie können sie auf YouTube überprüfen.
Ich würde Ihnen raten, sich eher mit Schema als mit LISP zu befassen. Scheme ist eine modifizierte Version von Lisp mit weiteren Verbesserungen. Das Programm wird hauptsächlich für akademische und Ausbildungszwecke verwendet. Es ist eine großartige Sprache, wenn Sie in der theoretischen Informatik forschen möchten.
Anwendungen :
Google App Inventor für Android verwendet Scheme, wobei Kawa verwendet wird, um den Scheme-Code in Byte-Codes für die Java Virtual Machine zu kompilieren, die auf Android-Geräten ausgeführt wird. Elk Scheme wird von Synopsys als Skriptsprache für seine Technologie-CAD-Tools (TCAD) verwendet.
Zu Ihrer Information: Verwendung des Schemas
quelle
Bryan O'Sullivan, Gründer von mailrank.com (das von Facebook übernommen wurde), hat die gesamte Serverseite dieser Software in Haskell erstellt. Er präsentierte dies auf der Strange Loop 2011, Videos und Folien sind online verfügbar.
Der gleiche Typ schrieb ein Buch namens Real World Haskell . Einige Leute erwähnten Programmier-Tutorials. Dieser mag Ihren Interessen durchaus angemessen sein (ich mag auch den Erlang-Vorschlag).
quelle
Ich weiß von Freunden im Finanzbereich, dass die quantitative Handelsfirma Jane Street OCaml verwendet, um ihre Handelsstrategien umzusetzen. Sie haben eine Seite, auf der sie über das Warum sprechen, zusammen mit Links zu Vorträgen zu diesem Thema.
quelle
Hier ist eine Liste der Erfolgsgeschichten von Common Lisp:
http://wiki.alu.org/Industry%20Application
http://www.franz.com/success/
http://www.lispworks.com/success-stories/index.html
Obwohl Common Lisp nur teilweise funktionsfähig ist (es unterstützt auch OOP und prozedurale Funktionen sowie alles, was Sie selbst oder mit einer Bibliothek implementieren möchten), ist es eine sehr pragmatische Sprache und in den Händen eines kompetenten Programmierers äußerst leistungsfähig. Ich benutze es tatsächlich, um Web-Apps mit dem hervorragenden RESTAS- Framework zu schreiben .
Und das kommerzielle Python-Projekt, an dem ich gerade arbeite, wird irgendwann durch in lisp geschriebene Dienste ergänzt (RESTAS, wie der Name schon sagt, eignet sich hervorragend für RESTful-Dienste).
quelle
Ich würde vorschlagen, in die Compiler einzutauchen (entweder für Allzwecksprachen oder für DSLs) - hier ist die funktionale Programmierung am besten. Es gibt viele interessante und nützliche Dinge zu entdecken, von ADTs und Pattern Matching auf der einen Seite eines Spektrums bis zu den Lisp-Makros auf der anderen Seite.
quelle
Vielleicht möchten Sie einen Blick auf Hume werfen .
Auf der Seite The Hume Programming Language :
Von der Wikipedia Hume Seite:
quelle