Введение в язык Haskell

{title}

Давайте посмотрим введение в язык программирования Haskell, это функциональный язык . В языках этого типа функции будут выполнять вычисления и что-то возвращать, у них нет побочных эффектов. Кроме того, переменные могут принимать только одно значение, то есть, если у нас есть переменная с именем na, которой мы присваиваем значение 10, n будет стоить 10, мы не можем сделать так, чтобы это стоило 14 или 3.

Haskell является языком статической типизации, другим примером такого языка является Java, это означает, что когда мы компилируем код, компилятор будет знать, какой тип данных принадлежит части памяти (целое число, строка, символ, логическое значение и т. Д.), вопреки тому, что происходит в динамических языках, таких как Python или Ruby.

Этот язык выполняет ленивые оценки, он не будет производить вычисления до тех пор, пока значение не станет полностью необходимым, кроме того, он предотвратит повторение этой оценки, если нам потребуется вычисление позже. Для экспоненциальных функций это что-то интересное, так как поможет сократить время выполнения.

После знакомства с некоторыми характеристиками языка мы начнем с действия, учебник будет полностью практичным, первое, что нам понадобится, это установить Haskell в нашу систему, для этого учебника будет использоваться Ubuntu, поэтому Я выполню следующую команду в терминале:

 sudo apt-get установить haskell-платформу 
Если вы используете другую операционную систему, тогда мы оставляем кнопку на официальной странице Haskell, где вы найдете, как продолжить установку, в Windows, Mac или другом дистрибутиве Linux:

СКАЧАТЬ ХАСКЕЛЛ

Начнем с практики, разделим учебник на примеры, начиная с самых простых.

Пример 1
Мы начнем с запуска консоли Haskell, для этого в терминале напишем следующую команду:

 GHCi 
Как видите, мы загружаем:

{title}

Promp - это Prelude, мы можем изменить его, в этом случае мы поместим его в hkl, для этого выполним:

 : установить подсказку "hskl>" 
Мы видим, как это изменилось:

{title}

Чтобы закончить с первым примером, мы увидим, как выполнять некоторые операции в этой консоли, ниже приведен захват примеров, мы можем увидеть сумму, деление (мы видим, что это показывает нам десятичные дроби, в других языках мы бы вернули всю часть ), и операция с круглыми скобками, чтобы оценить его функцию.

{title}

примечание

Если мы хотим покинуть консоль Haskell, мы пишем:

 : q 
И мы входим.

Пример 2
В следующем примере мы будем работать с логическими типами данных, мы видим следующее изображение, чтобы понять его использование:

{title}

Это не требует дополнительного объяснения, мы используем и ( && ) и или ( || ), в дополнение к отрицанию ( не ). На данный момент все просто, как мы видим.

Пример 3
Мы можем сравнить строки, числа, как мы это делаем на других языках, давайте посмотрим, как это работает:

{title}

Сравнение между различными типами приводит к ошибке, как и ожидалось.

Пример 4
В этом примере мы увидим функции, которые есть в Haskell, которые мы, вероятно, будем часто использовать:

{title}

Мы объясним функции, которые мы видели в предыдущем снимке:

  • succ x : возвращает преемника x, если x равен 3, decuelve 4.
  • min xy : возвращает минимальное число между x и y, если y равно 3, а x равно 2, возвращает x.
  • max xy : возвращает максимум x и y, в примере 3 и 2 возвращает 3.

Пример 5
В этом примере мы собираемся создать некоторую «функцию»:

$config[ads_text5] not found

{title}

Мы видим, что мы создали функцию exp, то, что она делает для возведения в квадрат числа, и функцию с именем double, которая будет возвращать двойное число, которое мы передаем, вы также можете оценить, что вы можете комбинировать то, что возвращает функция с другими операциями, такими как сумма.

Пример 6
Мы создадим нашу собственную функцию максимума, но для 3 чисел, и мы будем использовать ее, а затем захватить ее:

{title}

Пример 7
Мы увидим другие функции, с которыми мы можем работать в Haskell, они просты, мы собираемся применить их к спискам.

$config[ads_text6] not found

{title}

Мы видим, что init выполняет возврат списка без последнего элемента, tail делает обратное, возвращает список без первого элемента. Если мы видим, что head возвращает первый элемент списка и, конечно, last возвращает последний элемент. И последние две функции, длина дает нам длину списка, а обратная возвращает нам. Есть и другие функции, но цель урока не в том, чтобы увидеть все, просто дайте примерное представление, чтобы вы могли начать работать с Haskell.

Пример 8
Мы увидим последний пример, который вычислит факториал числа, который попытается создать файл, скомпилировать и выполнить его, мы создадим файл с именем test.hs, и в него мы добавим следующий код:

 fac n = (если n == 0, то 1 еще n * fac (n-1)) main = print (fac 3) 
Для компиляции мы используем следующую строку:
 ghc -o test test.hs 
И чтобы выполнить это мы положили:
 ./test 
Затем мы оставляем вывод:

{title}

Итак, вот учебник по языку программирования Haskell, если у вас уже есть быстрый опыт программирования, вы освоите его, хотя если вы не привыкли к функциональным языкам в начале, ваше программирование может быть несколько странным.

  • 0