LISP oder Haskell, ich muss funktionales Programmieren lernen, aber ich habe gehört, dass Lisp sehr alt ist, irgendwelche Ratschläge zwischen diesen beiden Sprachen?
Antworten
Zu viele Anzeigen?Um mich den anderen anzuschließen, würde ich sowohl Scheme (ein eher funktionaler Lisp-Dialekt) als auch Haskell lernen. Scheme / Lisp haben einige nützliche Tricks, um Sie über "Code ist Daten / Daten ist Code" und Makros zu unterrichten. Scheme fördert einen guten funktionalen Stil, und ich würde Ihnen die Bücher der Reihe "The Little Schemer" empfehlen, um damit anzufangen. SICP ist auch ein fantastischer Text http://mitpress.mit.edu/sicp/full-text/book/book.html und möglicherweise eines der besten Bücher, die je über Programmierung geschrieben wurden. Scheme ist als erste funktionale Sprache besser zugänglich.
Wenn Sie erst einmal den Dreh raus haben, werden Sie wahrscheinlich frustriert sein über den Mangel an Bibliotheken, den Mangel an Parallelität und die kleine, wenn auch exzellente, Community. An diesem Punkt befand ich mich, als ich beschloss, Haskell zu lernen. Haskell ist sehr ausgereift, sehr nützlich und sehr funktional, und es ist eine ziemliche Herausforderung, es zu erlernen, sobald man die Grundlagen hinter sich gelassen hat, so dass eine Grundlage in einer anderen funktionalen Sprache enorm hilft. Sie werden es nicht bereuen, eine von beiden (oder beide) zu lernen.
Warum nicht beides? LISP ist sehr leicht zu erlernen (ich würde mich für den Scheme-Dialekt entscheiden - siehe http://racket-lang.org ), also würde ich damit anfangen. Wenn es Ihnen gefällt, bleiben Sie dabei, aber ich würde es auch mit Haskell versuchen, obwohl es (meiner Erfahrung nach) wesentlich schwieriger ist, sich damit zurechtzufinden.
Das Tolle an der Computerwelt von heute ist, dass Sie all diese Sprachen kostenlos ausprobieren können, abgesehen von Ihrer Zeit. Als ich mit dem Programmieren anfing, war LISP nur auf Großrechnern verfügbar, was den Versuch, es zu lernen, ein wenig erschwerte.
Die Wahl aufgrund des Alters ist albern, Haskell gibt es schon viel länger als z.B. C# und seine Geschichte reicht viel weiter zurück. Wie auch immer, ich würde empfehlen, beide zu lernen, um funktionale Programmierung zu lernen, Haskell ist speziell für rein funktionale Programmierung (in einer Reihe von Bedeutungen). Scheme ist ein funktional orientierter Abkömmling von Lisp.