2009-01-13 17 views
5

Ich bin daran interessiert, meine Fähigkeiten im Bereich der funktionalen Programmierung zu verbessern, und ich glaube, dass der beste Weg dazu ist, an einem mittelgroßen Projekt zu arbeiten. In der Vergangenheit habe ich mit Scheme gearbeitet und möchte dies auch weiterhin tun. Kann jemand bitte einige mittelgroße Scheme-Projektideen vorschlagen? (Anmerkung: Ich bin sehr versiert in C (ANSI C89/ISO C90), daher ist die Verwendung der Fremdfunktionsschnittstelle von Scheme zum Beispiel mit einer Bibliothek wie ncurses nicht nur möglich, sondern bevorzugt.)Scheme Projektideen

Antwort

4

Das könnte dir einige Ideen aus dem letzten Thread „PLT-Projekte warten auf Mitwirkenden auf der PLT Scheme Mailing-Liste

Insbesondere einen Blick auf Flatt Post nehmen:.

http://list.cs.brown.edu/pipermail/plt-scheme/2009-January/029585.html 

Wir konnten einige Bilddateibibliotheken verwenden:

  • rea ding GIF-Dateien (wir bereits eine Bibliothek zum Schreiben haben)

  • Lesen und Schreiben von BMP-Dateien

  • Lesen und Schreiben XPM & XBM Dateien

Alle diese Format derzeit in MrEd gebaut mit C-Code, aber der Code ist hässlich und wir möchten es loswerden. Auch diese Bildformate sind ziemlich einfach.


4

Course 6.001 am MIT wird in LISP gelehrt, versuchen Sie einige der lab assignments.

+0

6.001 wird in Scheme, nicht LISP gelehrt. –

+0

@JasonS Schema ist LISP –

+0

Es ist ein Dialekt von LISP. Der "Standard" -Dialekt von LISP ist Common LISP, daher ist es wichtig, dies zu sagen. Das Schema weist auch signifikante Unterschiede zu LISP auf, insbesondere das lexikalische Scoping vs.dynamisches Scoping, also wenn Sie sagen, Scheme ist LISP, ist es so, als würde man sagen "Afrikaans ist Holländer, dasselbe". –

1

Wie wäre es mit einem Fortsetzungs-Webserver? Smalltalk hat bereits einen (Seaside) und PLT Scheme hat einen in seiner Distribution, aber ich denke, es wäre ein gutes Allround-Projekt zu versuchen, da es Netzwerk, Multithreading, I/O, Benutzer-Erweiterbarkeit usw. umfasst.

Es gibt einen interessanten Artikel here, der Sie vielleicht am Anfang hat.

Viel Glück !!!

+0

Ich glaube wirklich, dass Sie den Webserver vom übergeordneten Webframework trennen möchten. – jrockway

+0

Ja, wie Weblocks und hunchentoot in Common Lisp – Svante

1

Wenn Sie feste Schema unter dem Gürtel, und Sie wollen verstehen, was passiert, wenn ein Compiler Code-Generierung der Fall ist, folgen this tutorial. Es gibt zugeordnete Ressourcen unter der author's homepage.

Vorsicht: Das Papier, das Tutorial und die Testfälle sind nicht richtig ausgerichtet. Du musst deinen Verstand über dich behalten und die Dinge ein wenig selbst herausfinden. Folgen Sie insbesondere dem Tutorial bis zu lambdas, folgen Sie dann dem Papier für labels/code/labelcall, dann zurück zum Tutorial für die Heap-Zuweisung, dann zurück zum Papier für Fortsetzungen und weiter zu den nächsten Schritten. (Tut mir leid, es kompliziert zu machen, aber das ist die Route, die für mich funktioniert hat.)