Если Вы установите append
параметр к false
, то основной файл журнала будет "запущен новый", когда приложение перезапустит. Вы подразумеваете, что хотите, чтобы какие-либо "прокрученные" файлы журнала были удалены также?
Когда вы говорите «примеры из реального мира», вы, вероятно, думаете о проблемах, которые по своей сути являются последовательными или с отслеживанием состояния, или выполняют много операций ввода-вывода, верно?
Итак, как насчет игр?
Или, как насчет X Window Manager , расширяемого текстового редактора клонов Emacs или an IDE ?
Затем есть книга, в названии которой даже есть ваш вопрос: Real World Haskell и , который также доступен для бесплатно !
Еще одна вещь, на которую вы, возможно, захотите посмотреть, - это Функциональное реактивное программирование . (Он используется, например, во Frag.) В FRP интересно то, что он позволяет вам взглянуть на проблему, скажем, программирования графического интерфейса пользователя под совершенно другим углом. Если вы прочитаете главу о графическом интерфейсе пользователя в книге RWH, вы увидите, что в ней говорится о том, как можно написать приложение с графическим интерфейсом, как в C, только лучше. FRP OTOH позволяет записать его совершенно другим способом, который даже не был бы в C.
много раз (я не говорю, что это случай в вашем вопросе, но это повторяющийся шаблон), когда кто-то говорит «но можно ли использовать Haskell в реальном мире», они на самом деле говорят: «Я знаю, как это сделать в C, а в Haskell я не могу сделать это точно так же, поэтому в Haskell это должно быть невозможно, поэтому Haskell не готов для реального мира ". Но они упускают то, что может быть совершенно другой и гораздо лучший способ решения проблемы. (Это все равно, что сказать: «У Erlang нет потоков, поэтому его нельзя использовать для реализации параллельных систем».
xmonad is event driven (literally). It has a listener loop that wakes up on events, modifying an internal state modelling the X server, which is then rendered to the screen.
Однажды я нашел этого IRC-бота, написанного на haskell:
вам следует ознакомиться с Real World Haskell . Книга находится в свободном доступе и показывает, как Haskell можно применить к проблемам реального мира. Я бы не назвал это учебным пособием, поскольку он гораздо более всеобъемлющий.
Ознакомьтесь с функциональным реактивным программированием .
Вот несколько ссылок, которые вы просили.
Это объясняет многие вещи, которые «не имеют смысла» для императивного программиста о Haskell
Haskell Tutorial for C Programmers
Это очень хорошее руководство, которому легко следовать
Learn You a Haskell for Great Good
Raytracer, написанный на Haskell
Вы можете скачать Glasgow Haskell Compiler отсюда. GHC