2010-06-24 10 views
14

Wiem, być może pytam wiele, ale czy ktoś wie o kilku przykładach/bibliotekach dla Haskella.Przyjemny mały prosty przykład programowania w prawdziwym życiu w Haskell?

Dla kursu "wprowadzenie do programowania" chcę pokazać, że Haskell to więcej niż "mały język skryptowy do sortowania liczb".

Znalazłem już klona Quake (Real world Haskell programming), który jest imponujący, ale zbyt skomplikowany, aby uczniowie mogli się nim bawić.

Masz pomysł? Może coś z grafiką lub interakcją z usługą sieciową? Coś odpowiedniego dla studentów pierwszego roku cs.

Dzięki za spryt!

[aktualizacja]

A może znasz 'fun' biblioteki?

Odpowiedz

1

This to link do Dziewięćdziesięciu dziewięciu problemów Haskella, które opierały się na dziewięćdziesięciu dziewięciu problemach z Prologiem. Nie wiem, czy to dokładnie to, czego chcesz, ale może tam być coś, czego możesz użyć.

0

Kiedy uczyłem się Haskella, użyłem Hangmana jako pierwszego programu. Jest to proste, ma interakcje użytkownika i plików, niewiele, ale niektóre błędy obsługi itp. Wszyscy twoi uczniowie będą o tym słyszeli lub mogą zostać szybko nauczeni. Myślę, że mój program kończy się na stronie kodu.

3

Najpopularniejszym znanym mi przykładem jest the xmonad tiling window manager. Jest to prawdziwy program, którego ludzie używają, a kod jest zarówno mały, jak i dobrze napisany (jak mi powiedziano - prawie nie uważam się za kwalifikowanego do oceniania kodu Haskella większości ludzi).

0

Co z cat, wc i przyjaciółmi?

+1

Czy oryginalne nie są zwykłymi literami C? A może są jakieś popularne wersje napisane w Haskell? –

4

mam zamiar umieścić w wtyczką dla Star Rover i Freekick, z kilku powodów:

  • Są gry, tak mają, że „wow” czynnik dla studentów (choć z dość ograniczonym grywalności teraz - Freekick zasadniczo gra przeciwko sobie i jeśli możesz zabić wroga w Star Roverze, jesteś lepszym graczem niż ja).
  • Deweloper napisał very informative blog, który pomoże uczniom uzyskać pojęcie o krzywej uczenia się.
  • Obie gry zawierają bardzo proste fragmenty kodu, które uczniowie będą w stanie zrozumieć natychmiast: na przykład moduł Drzewo lub funkcję konwersji radianów na stopnie.
  • Zależności biblioteczne są względnie minimalne: głównie OpenGL i SDL.

Powodzenia i mam nadzieję, że to pomoże.

4

xmonad jest dobrym pomysłem, jak powiedzieli inni, jeśli możesz je im pokazać. Nawiasem mówiąc, Simon Peyton Jones wykonany bardzo przekonujące wykorzystanie xmonad w swoim poradniku „A Taste of Haskell” http://research.microsoft.com/en-us/um/people/simonpj/papers/haskell-tutorial/index.htm

To mniej wizualny, oczywiście, ale ma być wprowadzenie w głosowaniu na Pandoc - skupiając się na niezwykle prosty moduł centralny, the definition of a 'document' i pokazując, w jaki sposób pure funkcje eksportowane przez 'writers' i 'readers' (readMarkdown, writeLatex etc.) odnoszą się do niego.