↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Временно не работает,
как войти читайте здесь!
Ластро
21 июня 2015
Aa Aa
От Excel к Haskell или функциональное программирование на пальцах.

      Немного о повествовании, я планирую серию мелих заметок, в которых идя от простого буду постепенно раскрывать перед вами красоту функционального программирования. Сначала нарисую то как вижу сам обычный Excel, покажу как это имитируется, а потом буду шаг за шагом указывать на места в которых можно сделать проще, красивее, изящнее.
      Весь путь мы пройдём вместе с интерпретатором, компилируемую программу напишем в самом конце. А потому первое, что вам нужно сделать если планируете со мной, установить его. Берём последнюю версию с официального сайта, не стесняемся.

      Итак поехали. Что видит человек открывая Excel или любую другую аналогичную программу? Перед ним простирается массив ячеек, каждая из которых уникальна, имеет адрес, и содержимое. Но в целом все их можно разбить на две группы, те которые содержат непосредственно данные "как есть", и те которые содержат вычисление -- функцию. Функция, может иметь всё нужное или ссылаться на другие ячейки. Всё, больше там ничего нет, всё остальное никоим образом не относиться к вычислению, а значит нас не интересует.

      Как не трудно заметить картина мира стала очень проста. Осталось лишь это изобразить в рамках нашего функционального языка. Открываем любой текстовый редактор(главное чтоб он позволял вам сохранять файл в нужном разрешении), и сохраняем пустой файл с именем Main.hs (Внимание имя файла обязательно(!) с большой буквы!). Всё, перед вами полный аналог чистого экселевского листа, который к слову ровно точно так-же ничего не делает. Проверить? Включаем интерпретатор ghci (который вы уже конечно взяли с официального сайта).

      Вводим туда команду:":l Main.hs". Ответ интерпретатора: "Модуль "Main" загружен"... Увы как уже было сказано, пока он ровным счётом ничего не делает. Исправим!
      В Excel основным строительным материалом служит ячейка, в Хаскеле - функция. Ячейки строго упорядочены, функции в файле можно располагать в любом удобном вам порядке. Вместо координат - имя.
      Предположим у нас есть простой экселевский файл, из двух столбиков, где в первом записаны имена, а во втором зарплата. Задача найти сколько получит рядовой ИТОГО ;)
      Открываем наш файл, и пишем туда примерно следующее. Сохраняем файл. А в интерпретаторе вводим ":r", чтобы перезагрузить файл, и имя интересующей нас функции-ячейки(в дальнейшем просто функции), чтобы посмотреть её значение.
      В принципе этого достаточно, чтобы посмотрев названия базовых функций проводить простые вычисления. Но... давайте не будем извращаться, и значительно упростим себе жизнь. Как это сделать расскажу в следующий раз. А пока просто выйдем из интерпретатора набрав команду ":q".

P.S. Прошу критику, предполагаемый уровень "для совсем чайников". Материала много, а излагать его нужно по возможности просто.

#Haskell
21 июня 2015
1 комментариев из 42 (показать все)
ДНИЩE--ЫЫЫЫ
Забей
Суть в том
что я не МАНУЛ
ПОИСК
ФАНФИКОВ







Закрыть
Закрыть
Закрыть