Learning F #: Welche Bücher mit anderen Programmiersprachen können in F # übersetzt werden, um funktionale Konzepte zu lernen?

8

Ich habe jetzt mehrere Monate damit verbracht, F # mit dem größten Lerneffekt zu lernen F # übersetzt den Code OCaml in " Handbuch der praktischen Logik und des automatisierten Denkens " ( WorldCat ) von John Harrison, in F #.

Da dies eine so effektive Methode des Lernens ist, plane ich, den Code in mehr Bücher in F # zu übersetzen, aber Bücher konzentrieren sich hauptsächlich auf funktionale Konzepte oder Anwendungen in der realen Welt , die normalerweise dafür bekannt sind, dass sie mit einer funktionalen Sprache geschrieben wurden wie AI , Compiler , Theorem Provers und Reasoning Assistants .

Man könnte zwar meinen, dass die Übersetzung eines Programms von einer Sprache in eine andere eine triviale Aufgabe ist, in der Realität jedoch nicht nur in der Sprache, sondern auch in der Umgebung und den Werkzeugen, die gelernt und verstanden werden müssen die Übersetzung. Man muss die Tiefen beider Sprachen und ihrer Umgebungen erforschen, die normalerweise nicht berücksichtigt werden, wenn man nur darüber liest. Zum Beispiel habe ich bei der Übersetzung von Ocaml nach F # die oberste Ebene gelernt, ocamldebug und Zeitreisen, trace und wünschte, F # hätte dies, camlp4 und wie es nicht in F #, Ausnahmebehandlungs-Leistungsunterschieden existiert und Inferenz in einer Weise eingeben, dass zwang mich, die F # -Antworten auf eine Weise zu verstehen, die ich nicht hätte, wenn ich nur mit F # experimentiere oder Bücher lese.

Kennen Sie andere Bücher, die Quellcodes verwenden, vorzugsweise funktionale, die das Konzept der funktionalen Programmierung abdecken oder reale Anwendungen sind, die typischerweise in einer funktionalen Sprache geschrieben sind und die beim Erlernen der funktionalen Programmierung durch Übersetzen helfen der Quellcode zu F #?

Um dieses Ziel und nicht subjektiv zu halten, müssen die Antworten erklären, warum es wichtig ist, und Sie müssen das Buch nicht nur verwendet haben, um das Buch zu durchsuchen. Ich suche nach Antworten von Leuten, die seit Jahren funktionale Programmierung machen und die Arbeit in einem solchen Buch als Schlüssel zu ihrem Erfolg mit funktionaler Programmierung empfunden haben. Beispiele für Antworten:

BEARBEITEN

Während ich warten möchte, bis eine bessere Antwort zu akzeptieren ist, habe ich gelernt, dass nach ein paar Tagen auf SO die Ansichten erheblich abklingen.

Ich finde, dass beide Antworten großartig für jemanden sind, der nicht mit den Büchern vertraut ist und dass, wenn ich die meisten Bücher nicht schon kannte und Kopien davon hätte, ich ernsthaft in Betracht ziehen würde, sie zu bekommen.

Da PAD die fortgeschritteneren Bücher notiert hat, was ich suchte, gebe ich ihm die Annahmeabstimmung. Wenn ich das akzeptieren könnte, würde ich das tun.

    
Guy Coder 30.09.2012, 16:28
quelle

2 Antworten

7

Sie sehen mir so unheimlich aus. Ich schlage ein paar grundsätzliche vor:

  1. Rein funktionale Datenstrukturen Buch von Okasaki. Das Buch verwendet SML-Notationen; das Übersetzen seiner Beispiele in F # ist eine Herausforderung, da Funktoren fehlen. Aber der Vorteil ist riesig; Sie werden viel während des Prozesses lernen und andererseits der F # -Community enorm helfen. Wie @Jack P. erwähnt hat, wurden viele dieser Datenstrukturen auf F # portiert ; Sie könnten ein guter Anfang für Sie sein.

  2. ML für den arbeitenden Programmierer von Paulson. Ich mag besonders den Teil, der Induktion verwendet, um die Korrektheit von Programmen zu beweisen. Ein paar große Beispiele im Buch wie Schreibinterpreter für den Lambda-Kalkül und Ein taktischer Theorembeweiser sind interessant und nahe an deinem Interessengebiet.

  3. Die Haskell-Schule des Ausdrucks von Hudak. Dieses Buch wird Ihnen sehr viel Spaß und Erfolg bringen, da Sie es mit realen und aufregenden Anwendungen beenden. Darüber hinaus gibt es eine Menge nützlicher Informationen über das Design von DSLs im Buch.

Ich bewundere Ihre Hartnäckigkeit des Lernens von F # durch Versuch-und-Irrtum-Prozess. Wenn du nach John Harrisons Buch überleben könntest, denke ich, dass nur sehr wenige dich herausfordern werden. Ich würde dir empfehlen, eine echte Anwendung in einer anderen funktionalen Sprache zu finden, die wir nicht in F # haben und sie portieren. Zum Beispiel, aus den Beispielen des Buches, Schreiben eines einfachen Proof-Assistenten in F # ähnlich wie Coq , Isabelle oder Hol-light ist nicht so weit.

    
pad 30.09.2012, 18:02
quelle
3

Unter Berücksichtigung der in Ihrer Frage aufgeführten Titel sind Sie den Grundlagen bereits weit voraus. Aber wenn wir von Fundamentaldaten sprechen, würde ich vorschlagen, darüber nachzudenken:

Richard Bird, Philip Wadler - Einführung in die funktionale Programmierung, 1. Ed ISBN: 0134841891 (Buch FP Sprache ist Miranda)

und allzeit klassisch

Harold Abelson und Gerald Jay Sussman - Struktur und Interpretation of Computer Programs, 2. Ausgabe ISBN: 0262011530 (die FP-Sprache des Buches ist Scheme)

    
Gene Belitski 30.09.2012 17:30
quelle

Tags und Links