Другое начало

Привет! У нас собраны уроки по программированию, то есть написанию программ. Уроки рассчитаны на абсолютного новичка, который, может, и слова «монада» в жизни ни разу не слышал. Уроки разбиты на уровни, первый уровень — основы языка Haskell.

Уроки очень простые, в каждом немного теории и задачки, которые нужно решать для ее закрепления. Ничего сложного! Присоединяйся!

Требуемые знания: достаточно умения включать компьютер и пользоваться браузером. Ноутбук/айпад/планшет/смартфон тоже подходят, если в них есть интернет.

Зачем это нужно? На Haskell (если у тебя хватит терпения пройти все уроки) можно решать как простые, так и сложные математические задачи, например, вычисление чисел Фибоначчи. Ну или можно легко удивить окружающих, бросив небрежно «А, кстати, я иногда пишу код на Хаскелле». Также, Хаскелл — ленивый выразительный язык, и с его помощью ты тоже можешь стать более ленивым и выразительным. Да и просто немного напрячь мозги полезно, согласись?

Как происходит обучение? Просто — читай уроки, смотри картинки, следуй инструкциям, делай задания, задавай вопросы.

Первый урок

Немного о Хаскелле

Что такое Хаскелл? Язык программирования.

Что такое программа? Это обычный текст, в котором записан набор инструкций, говорящий компьютеру, что ему делать. Программист пишет программу, а компилятор переводит (компилирует) ее в понятные процессору коды, после чего программа запускается и выполняется. Иногда текст программы тоже называют код. Что может делать программа? Да все, что угодно. Профит!

Каким образом пишется программа? Любым, который нравится программисту. Ты можешь использовать блокнот (не советую), а можешь скачать продвинутый редактор вроде Notepad++ или Sublime Text (советую). Продвинутые редакторы подсвечивают код разными цветами и содержат кучу функций для его редактирования. Нам же пока хватит сайта ideone.com . Но ближе к концу курса стоит все же скачать и освоить хотя бы Notepad++.

Поскольку устанавливать всякие программы и, тем более, ковыряться в командной строке (это такое черное окошечко с белыми буквами, где можно писать команды) — слишком сложно для начинающего, мы будем использовать вначале более простой способ запускать свои творения.

Для этого заходи на сайт http://ideone.com/ . Там ты можешь набрать текст программы, нажать кнопку, и увидеть результат его работы. То есть то, что ты туда вбиваешь, отправляется на их сервер и передается компилятору Haskell, код компилируется и выполняется, а тебе выводится результат его работы. Естественно, ты можешь после этого скопировать ссылочку и показать всем друзяшкам из вконтактика, как круто работает твоя программа. Что может быть удобнее? А вот раньше, ребята, не было никаких вконтактиков, компьютеры были размером с грузовик, а программы набивали дырочками на перфокартах

Ideone сломался и не открывается? Попробуй зайти на альтернативный сервис: http://codepad.org/

Ладно, сколько можно читать теорию, давай начинать кодить!

Напиши программу, выводящую какой-нибудь текст. Обычно первая программа выводит текст вроде «Hello World» («Привет, Мир»).

Упс! Ты же, наверно, не знаешь, как это сделать. Держи инструкцию:

Как запустить программу на Haskell

Если что-то не работает (или вместо результата ты видишь похожие на заклинания сообщения об ошибках), перепроверь свою программу. Программирование — точная наука (ой? это наука?) и нельзя просто так взять и заменить большую букву на маленькую или одинарную кавычку на двойную. Слово putStrLn пишется с большой «S» и большой «L». Кавычки должны быть двойные (они находятся на клавиатуре около клавиши Enter):

Кавычки на клавиатуре

Если ты мучался-мучался, мучался-мучался и вопреки известной поговорке ничего тк и не получилось, держи ссылочку на работающую программу: http://ideone.com/HoYEms . Можешь взять ее за основу.

Давай разберем, что мы понаписали.

А что такое Хаскелл?

В Хаскелл программа состоит из кусочков — функций. Каждая из них делает какую-то свою часть задачи. После того, как функция определена (то есть, после того, как ты ее написал), ее можно вызвать, чтобы она что-то сделала. Функции определяются с помощью такого кода:

functionName = ....

То есть, слева мы пишем имя функции (мы его придумываем сами), потом знак «равно», а справа — что она делает. main — это особое имя, функция с таким именем вызывается при запуске программы (и потому она должна в ней обязательно быть). То есть, наша программа состоит из единственной функции main.

А что такое putStrLn? Это встроенная функция (написанная не нами, а идущая в комплекте с компилятором), которая выводит переданную ей строку с текстом. Строка, которую надо вывести, идет сразу после названия putStrLn . Таким образом, мы сделали программу из одной функции, которая лишь выводит одну строчку. Ну, для начала, думаю, неплохо.

Ты наверно заметил, что слово «функция» встречается в каждом предложении. Неудивительно, ведь Хаскелл — функциональный язык программирования. Больше функций — в следующем уроке!

дальше: Функции →

-----

Куда вводить код? Что надо скачать? Читай первый урок.

Есть вопросы? Задай гуглу или автору.

Нравится урок? Лайкай, репости, приглашай друзей, пости котов и Канако, шли добра, решай задачи, помогай новичкам! Кнопок для лайка нет, кто хочет зарепостить, всегда может сделать это ручками.

Как связаться с автором? Я хочу переодеть его в платье школьницы и жениться на нем. Ящик codedokode (кот) gmail.com ждет ваших писем. А вконтактик и фейсбучек ждут ваших лайков. Но ответ на банальные вопросы лучше искать в Гугле или на stackoverflow.

Я решил задачку!!! Молодец, делай следующий урок

Почему так много рекламы? Всю рекламу на сайте ставит юкоз (бесплатный хостинг же), а не я.

На сайте установлена система Google Analytics (и еще несколько аналогичных систем от юкоза). Данные о твоем IP-адресе, посещаемых страницах, времени посещения отправляются в Google Corporation, США. Хочу знать, кто и зачем сюда заходит. Поверь, другие сайты делают точно так же. Все сайты пишут логи.