Публикации по теме 'haskell'


Струны с питанием от Fusion!
В нескольких последних статьях мы рассмотрели различные типы String в Haskell, и я несколько раз упоминал об «эффективности». Но что это значит? С Bytestrings должно быть немного понятнее. Используя более компактное представление данных и работая с типом более низкого уровня, например Word8 , наши строки будут занимать меньше места в памяти и будут иметь большую непрерывность. Это делает операции над ними более эффективными. Но что именно в Text делает его более эффективным, чем..

Красота вывода типов в Haskell
Как функциональный язык программирования, Haskell предлагает инновационный и свежий взгляд на разработку программного обеспечения. Строгая система типов языка обеспечивает разработку надежных, удобных в сопровождении и эффективных программ. Среди множества функций, предоставляемых Haskell, одна выделяется как отличительный фактор — вывод типа. Понимание вывода типа Вывод типа — это характеристика некоторых языков программирования, позволяющая автоматически определять тип данных..

Понимание сложных объявлений типов в Haskell
Погружение в гибкие функции Давайте рассмотрим простой пример: multThree :: (Num a) => a -> a -> a -> a multThree x y z = x * y * z Здесь multThree принимает три параметра. Все параметры должны быть того же типа, что указан a в объявлении типа. Наряду с тем, что они одного типа, у них есть дополнительное ограничение, как показано классом типа Num , то есть (Num a) . Что считается частью класса типов Num ? Чтобы тип считался частью класса типов Num, он должен..

Научитесь Hask / Elm для отличного JavaScript
Курс, который я посещал в колледже, под названием Основы языка программирования познакомил меня с Haskell , и вскоре я был полностью очарован этим языком. Это было мое первое знакомство с парадигмой функционального программирования, и все, что я делал, казалось мне разгадыванием загадки. Haskell заставил меня почувствовать себя умным, и хотя программирование не должно быть все разгадыванием загадок, чувствовать себя умным - одно удовольствие. Однажды перед занятием друг, который..

Построение GHC: этапы
В части первой мы узнали о базе данных пакетов. Затем Вторая часть познакомила с инструментами и программами, созданными при построении GHC. В этой части мы рассмотрим, как строятся настоящие этапы. Я не буду вдаваться в подробности системы сборки на основе make, но попытаюсь дать общее представление о том, что происходит в концептуальном плане. Для построения GHC обычно требуется запустить: ./boot (1) ./configure --prefix=/usr/opt (2)..

Спок II: Базы данных и сеансы!
На прошлой неделе мы изучили основы библиотеки Спока . Мы увидели, как настроить несколько простых маршрутов. Как и в Servant, есть несколько машин зависимого типа с маршрутизацией. Но нам не нужно было учить какие-либо сложные операторы. Нам просто нужно было согласовать количество аргументов с нашими маршрутами. Мы также увидели, как использовать состояние приложения для сохранения некоторых данных между запросами. На этой неделе мы добавим еще пару сложных функций в наше..

Lucid: еще один вариант HTML
В настоящее время мы изучаем различные библиотеки Haskell для создания HTML-кода. Мы уже немного изучили, как это сделать в Reflex FRP и с помощью библиотеки Blaze . На этой неделе мы рассмотрим еще одну библиотеку Lucid . Затем на следующей неделе мы начнем рассматривать некоторые более сложные вещи, которые мы можем сделать с нашим сгенерированным кодом. Подходы от Reflex и Blaze во многом схожи. В частности, оба используют монадическую композицию для построения дерева. Lucid..