Скачать 450.1 Kb.
|
4Базовые принципы языка HaskellКак было сказано, язык программирования Haskell является функциональным языком, и он обладает всеми вышеперечисленными свойствами Для начала рассмотрим необходимый инструментарий для работы. Самым распространенным и эффективным на сегодняшний день является компилятор GHC (Glasgow Haskell Compiler). Он распространяется под открытой лицензией, и любой желающий может загрузить его исходные коды или скомпилированную версию для популярных операционных систем с официального сайта http://haskell.org/ghc/ (кроме того, на сайте http://haskell.org/ можно найти много дополнительной информации по языку). Кроме самого компилятора в GHC входит интерактивная среда GHCi (GHC interactive) — интерпретатор Haskell, позволяющий вычислять любые выражения и интерпретировать написанные программы. К сожалению, полнофункциональной среды разработки для Haskell еще не разработано (кроме, возможно, Leksah — среды разработки для Haskell, написанной на Haskell, и нескольких плагинов для Visual Studio и Eclipse), но зачастую хватает возможностей лишь расширенного текстового редактора (например, Notepad++, gedit, kate) с подсветкой синтаксиса и некоторыми другими возможностями. 4.1Интерактивная средаИнтерактивная среда GHCi может вычислять любые выражения на языке Haskell. Рассмотрим основы работы с этой средой. Для ее запуска (после установки GHC или Haskell-Platform) достаточно запустить в консоли программу ghci (либо выбрать соответствующую программу в списке всех программ). После запуска в консоли появится приглашение: Prelude> Prelude означает имя текущего модуля, по-умолчанию загружается стандартный модуль Prelude, содержащий все основные функции и типы данных. Здесь мы можем вычислить любое выражение, например обыкновенное арифметическое выражение: Prelude> 2+2 4 Как мы видим, интерактивная среда вычислила результат выражения и вывела его в новой строчке. Попробуем вычислить выражение посложнее: Prelude> 1-2*(4-3^2) 11 Возведение в степень (^) является стандартным оператором, определенным в стандартном модуле Prelude наравне с операциями сложения и умножения. Кроме арифметических выражений в интерактивной среде возможно вычислять любые другие функции, определенные в стандартном модуле, либо в любых других, загруженных пользователем. Для вычисления значения функции записывается ее имя и указываются аргументы, разделенные пробелами. Например, в стандартном модуле определена функция max, выбирающая максимальное значение из двух аргументов. Использовать ее можно так: Prelude> max 7 100 100 В данном примере вычисляется максимальное из двух чисел — семи и ста. Как мы видим, результатом вычисления функции является число 100. В качестве аргументов функции могут выступать любые выражения (но только соответствующего типа; подробнее типы рассматриваются в других разделах), например: Prelude> max (2^10) (10^3) 1024 В этом примере определяется, что два в десятой степени превышает десять в третьей степени. Заметим, что заключение аргументов в скобки является обязательным для того, чтобы выделить какая часть выражения является аргументом. Например, если опустить скобки второго аргумента, то получим немного неожиданный результат: Prelude> max (2^10) 10^3 1073741824 Без скобок данное выражение интерпретируется как максимум из двух чисел (1024 и 10), возведенный в третью степень. Кроме того, интерактивная среда GHCi может автоматически дополнять имена вводимых функций. Если набрать только начальную часть имени функции и нажать на клавиатуре клавишу «Tab», то GHCi попытается дополнить имя функции до имеющегося среди доступных определений (из стандартного модуля, либо подключенных пользователем). Например, если набрать «maxi» и нажать «Tab», то GHCi дополнит имя функции до «maximum». В том случае, если однозначно дополнить невозможно (есть несколько подходящих вариантов), то выводятся все возможные варианты: Prelude> max max maxBound maximum Prelude> max Теперь можно уточнить имя функции (дописав несколько букв) и снова нажать клавишу «Tab». Автодополнение очень полезно при использовании большого количества функций с длинными именами. |
Местного самоуправления городского округа город рыбинск В соответствии с Федеральным законом от 02. 03. 2007 n 25-фз "О муниципальной службе в Российской Федерации", законодательством о... | Отчет главы городского округа город Рыбинск «Об общих принципах организации местного самоуправления в Российской Федерации» на основе информации структурных подразделений и... | ||
Конспект лекций по курсу сд. Ф корпоративные информационные системы Д. В. Колесов, Р. Д. Маш, И. Н. Беляев «Биология. Человек», Изд-во «Дрофа», Москва, 2010 | С. П. Филин Концепции современного естествознания: конспект лекций Конспект лекций соответствует требованиям Государственного образовательного стандарта высшего профессионального образования РФ и... | ||
Конспект лекций раскрывает содержание и структуру учебной дисциплины... Налоговое право : конспект лекций / сост доцент Р. В. Бобринев; Кузбасский институт экономики и права. – Кемерово, 2011 – 144 с | Конспект лекций по дисциплине: теория систем и системный анализ санкт-Петербург... Выбор показателя эффективности, математическая постановка задачи | ||
Конспект лекций по философии Часть 1 Античная философия Новосибирск... Савостьянов А. Н. Конспект лекций по философии / Новосиб гос ун-т. Новосибирск, 2007. Ч. Античная философия. 68 с | Конспект лекций по курсу хозяйственного права тема Понятие хозяйственного права Кафедра Истории, социологии и права Назаров Андрей Александрович конспект лекций по курсу хозяйственного права | ||
Конспект лекций по высшей математике. В 2 частях. Часть М.: Айрис-пресс,... Баранова Е. С., Васильева Н. В., Федотов В. Л. Практическое пособие по высшей математике. Типовые расчеты. Учебное пособие. — Спб:... | Опорный конспект лекций Основные понятия, термины, законы, схемы... Л. Н. Блинов, Н. Н. Ролле. Экология: опорный конспект лекций. Основные понятия, термины, законы, схемы. Спб.: Изд. Спбгпу. 2005.... | ||
Конспект лекций Владимира Климентьева по истории философии, отредактированный... Рекомендовано Министерством общего и профессионального образования Российской федерации в качестве учебника для студентов высших... | Теория организации Конспект лекций для студентов специальности «Менеджмент организации» Макарова н. Н. Теория организации. Конспект лекций с практическими заданиями для студентов специальности "Менеджмент организации.... | ||
Письменный Д. Т. Конспект лекций по теории вероятностей, математической... Письменный Д. Т. Конспект лекций по теории вероятностей, математической статистике и случайным процессам. 3-е изд. М.: Айрис-пресс,... | Конспект лекций | ||
Конспект лекций по дисциплине правовое регулирование маркетинговой деятельности Опорный конспект лекций по дисциплине правовое регулирование маркетинговой деятельности | Конспект лекций по дисциплине методика самостоятельной работы студента... Отсутствие таких навыков приводит к тому, что учащиеся чувствуют беспомощность и растерянность при необходимости самостоятельно подготовить... |