Хороший небольшой простой пример программирования реальной жизни в Haskell?
Я знаю, я мог бы много спрашивать, но знает ли кто-нибудь о некоторых симпатичных небольших примерах/библиотеках программирования для Haskell.
Для курса "введение в программирование" я хочу показать, что Haskell - это нечто большее, чем "маленький script язык для сортировки чисел".
Я уже нашел клон Quake (Real Haskell programming), который впечатляет, но слишком сложен для учащихся, чтобы играть с ним.
У вас есть идея? Может быть, что-то с графикой или взаимодействием с веб-сервисом? Что-то подходящее для студентов первого года обучения.
Спасибо за ваш ввод!
[обновление]
Или, может быть, вы знаете "забавную" библиотеку?
Ответы
Ответ 1
Перейдите на http://hackage.haskell.org - там есть 2200+ библиотек и программ, многие из раздел игр, в частности, где предназначен для обучения. Как и этот jpeg encoder, или этот приятный mp3-декодер.
С точки зрения практичности, ядро xmonad является кратким, чистым и используется тысячами людей каждый день.
Ответ 2
Я собираюсь добавить плагин для Star Rover и Freekick, по нескольким причинам:
- Это игры, поэтому у них есть этот "вау" фактор для студентов (хотя и с довольно ограниченной воспроизводимостью сейчас - Freekick по сути играет против себя, и если вы можете убить врага в Star Rover, вы лучше геймер, чем я).
- Разработчик написал очень информативный блог, который поможет учащимся получить представление об кривой обучения.
- Обе игры содержат очень простые фрагменты кода, которые студенты смогут сразу понять: например, модуль Tree или функция преобразования радианов в градусы.
- Библиотечные зависимости относительно минимальны: OpenGL и SDL, в основном.
Удачи, и надеюсь, что это поможет.
Ответ 3
xmonad - хорошая идея, как говорили другие, если вы можете показать их им. Кстати, Саймон Пейтон Джонс очень убедительно использовал xmonad в своем учебнике "Вкус Хаскелла" http://research.microsoft.com/en-us/um/people/simonpj/papers/haskell-tutorial/index.htm
Это менее визуально, но я хотел бы проголосовать за Pandoc - сосредоточиться на невероятно простой центральный модуль, определение "документа" и показ того, как чистые функции экспортируются "авторы" и 'читатели (readMarkdown
, writeLatex
и т.д.) относятся к нему.
Ответ 4
Самый популярный пример, который я знаю, - это xmonad tiling window manager. Это реальная программа, которую люди действительно используют, и кодовая база является довольно маленькой и хорошо написанной (мне сказали - я вряд ли считаю себя квалифицированным, чтобы судить большинство людей кода Haskell).
Ответ 5
Это является ссылкой на Девяносто девять проблем Haskell, которая была основана на девяносто девяти проблемах Пролога. Я не знаю, действительно ли это именно то, что вы хотите, но там может быть что-то, что вы можете использовать.
Ответ 6
Когда я изучал Haskell, я использовал Hangman в качестве первой программы. Это просто, взаимодействие с пользователем и файлом, небольшая, но некоторая обработка ошибок и т.д. Все ваши ученики услышат об этом или могут быстро научить игру. Я думаю, что моя программа оказалась вокруг страницы кода.
Ответ 7
Как насчет cat
, wc
и друзей?