Къде е Haskell?
Изисквания за завършване
Препратки към четива във връзка с някои езици за функционално
програмиране. Обърнете внимание най-вече на това, което се
отнася до Хаскел. Другото е само информативно.
------------------------------------------------------------
Най-напред за Haskell.
Главната отправна точка за информация, свързана с него, е
http://www.haskell.org/
(1) Препоръчвам ви да прочетете най-напред
http://www.haskell.org/aboutHaskell.html ,
където се говори _за_ езика и за ф. пр. изобщо, без да се
описва съдържанието му.
----
(2) Други кратки и леки уводни четива са
http://www.di.uminho.pt/afp98/PAPERS/Tutorial.ps (14 стр.)
и
,,Beginning Haskell``
За последното идете на
http://www.ibm.com/developerworks/
и там търсете по думата ,,haskell``: четивото се появява
в началото на списъка от публикации, който ще видите в резултат
на търсенето.
----
(3) После е добре да прочетете
http://www.md.chalmers.se/~rjmh/Papers/whyfp.html
където се аргументират достойнствата на функционалния стил.
Примерите в статията са на Miranda, но в случая практически няма
разлика от Haskell. Тази статия е ,,класика`` на ф. пр.
----
(4) След това прочетете ,,The Gentle Introduction to Haskell``:
http://www.haskell.org/tutorial/
-- 60 или повече страници, които ще ви дадат възможност да се
запознаете с почти всички важни елементи на езика. На първо време
обаче не се задълбочавайте в частта за т. нар. монади. Този
материал е сложен и е достатъчно да го прегледате само за
информация.
----
(5) Следното е справочник за основните библиотечни функции
на Haskell (с някои малки пропуски) в удобен формат с взаимни
препратки (HTML):
http://www.cs.uu.nl/~afie/haskell/tourofprelude.html .
Съдържа определенията на функциите и кратки обяснения за тях.
Познаването на библиотечните функции е много важно за ползването
на езика (повече отколкото в други езици), а повечето от тях са и
чудесни примери за изучаване.
----
(6) Още едно четиво, доста по-дълго от горните -- нещо като малък
учебник по Haskell (125 стр.):
http://www.isi.edu/~hdaume/htut/tutorial.pdf .
----
(7) За подробно изучаване и сериозно ползване на езика трябва да
се сдобиете с двата документа, които са формалното му описание:
,,The Haskell 98`` Report и ,,Haskell 98 Library Report``. Има ги
и събрани в едно. Мястото е:
http://www.haskell.org/definition/
----
(8) Освен споменатите, още доста други четива ще намерите на
http://www.haskell.org/bookshelf/ .
----
(9) Накрая, може да намерите и два мои кратки материала по Haskell:
http://www.math.bas.bg/softeng/bantchev/misc/fpp.ps ,
http://www.math.bas.bg/softeng/bantchev/misc/simi02.ps .
Първото е статия с няколко примера, а второто -- текст с много
примери и къси коментари към тях (използвах го през 2002 в
шестчасова лекция пред способни гимназисти).
----
Ако имате компютър на разположение и решите да опитате сами
програмирането на Haskell, може да ползвате едно от двете:
-- GHC: компилатор и интерпретатор (компилаторът използва
компилатор за C, тъй като превежда най-напред в този език);
-- Hugs: само интерпретатор, но за начинаещи малко по-удобен от
GHC.
И двата продукта се разпространяват безплатно и са реализирани
както за истински операционни системи, така и за M$ Windows. Ще
ги намерите пак чрез главната страница www.haskell.org (в раздела
,,Haskell Compilers and Interpreters``).
------------------------------------------------------------
Сега за ML. Точното име на езика всъщност е Standard ML или късо
SML.
Могат да се посочат две основни места с подробна информация за
езика. Едното е FAQ:
http://isc.faqs.org/faqs/meta-lang-faq/ .
Другото е сайтът на един от най-добрите компилатори и
интерпретатори за SML -- SML/NJ:
http://cm.bell-labs.com/cm/cs/what/smlnj ,
където се намира и описанието на стандартната библиотека на SML.
На същия сайт в раздела ,,Tutorials`` ще намерите препратки към
две много добри ръководства по езика: това на R. Harper и това на
S. Gilmore. И двете обаче са големи, с обем на книги, така че
може да започнете с 22-страничния увод в езика ,,Tips for Computer
Scientists on Standard ML`` от M. Tofte. Последното е писано
отдавна, но е много подходящо за начално запознаване, а и
цитираните примери само на няколко места (в частта за модули) и
съвсем незначително се отличават от съвременния синтаксис на
езика.
Друго интересно, а и много практически насочено ръководство е
http://web.access.net.au/felixadv/files/output/book/
(ръководство за програмиране в Unix (Linux) със Standard ML).
Този текст е единственият известен на мен учебник, в който курс
с толкова практическа насоченост се води на модерен функционален
език, и единственият, в който преподаването на такъв език става
чрез решаване на съвсем конкретни, ,,ежедневни`` задачи.
Освен споменатия компилатор SML/NJ, от многото налични мога да
препоръчам още следните: MLton, Moscow ML и Poly/ML. Има ги и за
нормална операционна система, и за Windows. Безплатни са и
препратки към съответните страници ще намерите в FAQ-а.
------------------------------------------------------------
За информация по Haskell и ML може да четете също писанията по
дискусионните групи съответно comp.lang.functional и
comp.lang.ml. Всъщност първата по принцип е предназначена за
обсъждания изобщо по функционално програмиране, но преобладават
материали за Haskell.
Най-лесният начин да четете (а и да пишете в) архивите на групите
е чрез http://groups.google.com . Точните адреси са съответно
http://groups.google.com/groups?group=comp.lang.functional
и
http://groups.google.com/groups?group=comp.lang.ml .
------------------------------------------------------------
Езикът Clean е сходен с Haskell, но заслужава внимание и сам по
себе си. Неговата страница е
www.cs.kun.nl/~clean/ .
------------------------------------------------------------
Езикът Joy е представител на съвсем различен от дотук изброените
езици стил на функционално програмиране: т. нар. конкатенативен
или композиционен стил. Това е експериментален език с много
компактна реализация. Страницата му е
http://www.latrobe.edu.au/philosophy/phimvt/joy.html
Има две дискусионни групи по конкатенативния стил:
http://blog.gmane.org/gmane.comp.lang.concatenative
http://groups.yahoo.com/group/concatenative
програмиране. Обърнете внимание най-вече на това, което се
отнася до Хаскел. Другото е само информативно.
------------------------------------------------------------
Най-напред за Haskell.
Главната отправна точка за информация, свързана с него, е
http://www.haskell.org/
(1) Препоръчвам ви да прочетете най-напред
http://www.haskell.org/aboutHaskell.html ,
където се говори _за_ езика и за ф. пр. изобщо, без да се
описва съдържанието му.
----
(2) Други кратки и леки уводни четива са
http://www.di.uminho.pt/afp98/PAPERS/Tutorial.ps (14 стр.)
и
,,Beginning Haskell``
За последното идете на
http://www.ibm.com/developerworks/
и там търсете по думата ,,haskell``: четивото се появява
в началото на списъка от публикации, който ще видите в резултат
на търсенето.
----
(3) После е добре да прочетете
http://www.md.chalmers.se/~rjmh/Papers/whyfp.html
където се аргументират достойнствата на функционалния стил.
Примерите в статията са на Miranda, но в случая практически няма
разлика от Haskell. Тази статия е ,,класика`` на ф. пр.
----
(4) След това прочетете ,,The Gentle Introduction to Haskell``:
http://www.haskell.org/tutorial/
-- 60 или повече страници, които ще ви дадат възможност да се
запознаете с почти всички важни елементи на езика. На първо време
обаче не се задълбочавайте в частта за т. нар. монади. Този
материал е сложен и е достатъчно да го прегледате само за
информация.
----
(5) Следното е справочник за основните библиотечни функции
на Haskell (с някои малки пропуски) в удобен формат с взаимни
препратки (HTML):
http://www.cs.uu.nl/~afie/haskell/tourofprelude.html .
Съдържа определенията на функциите и кратки обяснения за тях.
Познаването на библиотечните функции е много важно за ползването
на езика (повече отколкото в други езици), а повечето от тях са и
чудесни примери за изучаване.
----
(6) Още едно четиво, доста по-дълго от горните -- нещо като малък
учебник по Haskell (125 стр.):
http://www.isi.edu/~hdaume/htut/tutorial.pdf .
----
(7) За подробно изучаване и сериозно ползване на езика трябва да
се сдобиете с двата документа, които са формалното му описание:
,,The Haskell 98`` Report и ,,Haskell 98 Library Report``. Има ги
и събрани в едно. Мястото е:
http://www.haskell.org/definition/
----
(8) Освен споменатите, още доста други четива ще намерите на
http://www.haskell.org/bookshelf/ .
----
(9) Накрая, може да намерите и два мои кратки материала по Haskell:
http://www.math.bas.bg/softeng/bantchev/misc/fpp.ps ,
http://www.math.bas.bg/softeng/bantchev/misc/simi02.ps .
Първото е статия с няколко примера, а второто -- текст с много
примери и къси коментари към тях (използвах го през 2002 в
шестчасова лекция пред способни гимназисти).
----
Ако имате компютър на разположение и решите да опитате сами
програмирането на Haskell, може да ползвате едно от двете:
-- GHC: компилатор и интерпретатор (компилаторът използва
компилатор за C, тъй като превежда най-напред в този език);
-- Hugs: само интерпретатор, но за начинаещи малко по-удобен от
GHC.
И двата продукта се разпространяват безплатно и са реализирани
както за истински операционни системи, така и за M$ Windows. Ще
ги намерите пак чрез главната страница www.haskell.org (в раздела
,,Haskell Compilers and Interpreters``).
------------------------------------------------------------
Сега за ML. Точното име на езика всъщност е Standard ML или късо
SML.
Могат да се посочат две основни места с подробна информация за
езика. Едното е FAQ:
http://isc.faqs.org/faqs/meta-lang-faq/ .
Другото е сайтът на един от най-добрите компилатори и
интерпретатори за SML -- SML/NJ:
http://cm.bell-labs.com/cm/cs/what/smlnj ,
където се намира и описанието на стандартната библиотека на SML.
На същия сайт в раздела ,,Tutorials`` ще намерите препратки към
две много добри ръководства по езика: това на R. Harper и това на
S. Gilmore. И двете обаче са големи, с обем на книги, така че
може да започнете с 22-страничния увод в езика ,,Tips for Computer
Scientists on Standard ML`` от M. Tofte. Последното е писано
отдавна, но е много подходящо за начално запознаване, а и
цитираните примери само на няколко места (в частта за модули) и
съвсем незначително се отличават от съвременния синтаксис на
езика.
Друго интересно, а и много практически насочено ръководство е
http://web.access.net.au/felixadv/files/output/book/
(ръководство за програмиране в Unix (Linux) със Standard ML).
Този текст е единственият известен на мен учебник, в който курс
с толкова практическа насоченост се води на модерен функционален
език, и единственият, в който преподаването на такъв език става
чрез решаване на съвсем конкретни, ,,ежедневни`` задачи.
Освен споменатия компилатор SML/NJ, от многото налични мога да
препоръчам още следните: MLton, Moscow ML и Poly/ML. Има ги и за
нормална операционна система, и за Windows. Безплатни са и
препратки към съответните страници ще намерите в FAQ-а.
------------------------------------------------------------
За информация по Haskell и ML може да четете също писанията по
дискусионните групи съответно comp.lang.functional и
comp.lang.ml. Всъщност първата по принцип е предназначена за
обсъждания изобщо по функционално програмиране, но преобладават
материали за Haskell.
Най-лесният начин да четете (а и да пишете в) архивите на групите
е чрез http://groups.google.com . Точните адреси са съответно
http://groups.google.com/groups?group=comp.lang.functional
и
http://groups.google.com/groups?group=comp.lang.ml .
------------------------------------------------------------
Езикът Clean е сходен с Haskell, но заслужава внимание и сам по
себе си. Неговата страница е
www.cs.kun.nl/~clean/ .
------------------------------------------------------------
Езикът Joy е представител на съвсем различен от дотук изброените
езици стил на функционално програмиране: т. нар. конкатенативен
или композиционен стил. Това е експериментален език с много
компактна реализация. Страницата му е
http://www.latrobe.edu.au/philosophy/phimvt/joy.html
Има две дискусионни групи по конкатенативния стил:
http://blog.gmane.org/gmane.comp.lang.concatenative
http://groups.yahoo.com/group/concatenative
Последно модифициране: събота, 12 ноември 2011, 17:38