Свързани публикации 'haskell'


Изграждане на GHC: етапите
В първа част научихме за базата данни на пакетите. „Втора част“ след това представи инструментите и програмите, изградени при изграждането на GHC. В тази част ще разгледаме как се изграждат реалните етапи. Няма да навлизам в детайлите на системата за изграждане, базирана на make, но се опитвам да дам цялостно разбиране какво се случва концептуално. Изграждането на GHC обикновено включва изпълнение на: ./boot (1) ./configure --prefix=/usr/opt..

Spock II: Бази данни и сесии!
„Миналата седмица“ научихме основите на „библиотеката Спок“. Видяхме как да настроим някои прости маршрути. Подобно на Servant, има малко машина от зависим тип с маршрутизиране. Но не трябваше да учим никакви сложни оператори. Просто трябваше да съпоставим броя на аргументите с нашите маршрути. Видяхме също как да използваме състояние на приложение, за да запазим някои данни между заявките. Тази седмица ще добавим няколко по-сложни функции към нашето приложение Spock. Първо ще се..

Lucid: Друга HTML опция
В момента разглеждаме различни библиотеки на Haskell за генериране на HTML код. Вече проучихме как да направим това малко в Reflex FRP и с помощта на Blaze библиотека . Тази седмица ще разгледаме още една библиотека, Lucid . Тогава следващата седмица ще започнем да разглеждаме някои по-сложни неща, които можем да направим с нашия генериран код. Подходите от Reflex и Blaze имат много прилики. По-специално, и двете използват монадична композиция за изграждане на дървото. Lucid..

Дешифриране на съобщения за грешка на обектива, част 1
Дешифриране на съобщения за грешка на обектива, част 1 Уважаемата библиотека lens на Haskell е, по мое мнение, една от неговите предимства като език. Това дава възможност за достъп, модифициране и запитване към дълбоко вложени структури от данни с ефективност, която надхвърля foo.bar.baz = “qux” пунктирания достъп до свойство в OOP стил и направо в нирваната на програмирането. Да се ​​научиш да използваш lens обаче може да бъде малко трудна битка — въпреки че има много..

TemplateHaskell и GHCJS
Това е друга публикация, очертаваща някои от моите борби при писането на „Nauva“. Този път става дума за това да накараш TemplateHaskell да работи в GHCJS . TLDR: Във вашите JS FFI файлове се уверете, че всички изрази от най-високо ниво зависят само от символи, дефинирани в езика JavaScript (ES5, ES2015 и т.н.), избягвайте използването на символи, които са специфични за дадена платформа (W3C DOM API, nodejs API и т.н.) . Използвам TemplateHaskell за конвертиране на низове..

Емулиране на таговете на struct field на Go в Haskell (I)
Езикът Go има хубава функция: когато декларирате структура, можете да присвоите метаданни на всяко поле . Тези метаданни по-късно са достъпни чрез отражение и например могат да се използват за определяне на външното име на полето при сериализиране в JSON. В Haskell aeson е най-популярната JSON библиотека. Можете ръчно да пишете парсери-декодери за вашите записи, но има и опция „не ме карайте да работя“ въз основа на генерични данни, които извличат парсер-декодера за вас, като..