Size: a a a

2021 March 03

[

[BRM]White Rabbit in Haskell
Хотите посмеяться с дурачка?
источник

ЗП

Зигохистоморфный Пре... in Haskell
кана
кроме того для ньютайпов есть один важный инструмент: coerce

если два типа X и Y это просто номинально разные версии одного и того же типа (например X - ньютайп над Y, или они оба ньютайпы от другого типа Z, который тоже может быть ньютайпом), то можно, и конструкторы X и Y есть в контексте, то существует функция coercе, которая сменит номинальный тип

newtype X = X Int

a :: Int
a = 1

b :: X
b = coece a

c :: [Int]
c = [1, 2, 3]

d :: [X]
d = coerce x

plus :: Int -> Int -> Int
plus a b = a + b

plus_xxx :: X -> X -> X
plus_xxx = coerce plus

plus_xix :: X -> Int -> X
plus_xix = coerce plus_xxx -- = coerce plus

писать d = map coerce x нет смысла, так как это по сути будет map id
вот только если есть квантор и он не нужный, то его никак не скоерсить
https://twitter.com/Iceland_jack/status/1366675541567356929
источник

[

[BRM]White Rabbit in Haskell
Автор_ка оставила тут объявление класса Аппликатива, чтоб читателю было яснее ,что это такое. Ну я и скопировал, как дурак. В итоге сидел, думал, почему появилось 100500 ошибок и хлс просит уточнить, что мне нужен прелюдный аппликатив
источник

G

GNU/Vsevolod in Haskell
https://youtu.be/N9RUqGYuGfw
Вот еще неплохо
источник

[

[BRM]White Rabbit in Haskell
мне через 6 часов вставать, побойся бога
источник

G

GNU/Vsevolod in Haskell
Но видео идет около 2 часов
источник

[

[BRM]White Rabbit in Haskell
ага, ещё целых 4 часа поспать будет...
Проблема в том, что я уже сильно туплю из-за желания спать, я даже статью через силу читаю и завтра скорее всего мне её придётся перечитывать
источник

[

[BRM]White Rabbit in Haskell
не ну парсеры это круто. Если я когда-то решу написать свой транслятор чего-то из чего-то, то писать буду на хаскеле.
источник

AP

Aleksei (astynax) Pi... in Haskell
Почему "парсер" сводится к "трансляторам"?
источник

AP

Aleksei (astynax) Pi... in Haskell
роутинг этого вашего вебчика — тоже парсинг, например
источник

JS

Jerzy Syrowiecki in Haskell
Aleksei (astynax) Pirogov
роутинг этого вашего вебчика — тоже парсинг, например
потому что парсеры для HTTP уже написаны
источник

AP

Aleksei (astynax) Pi... in Haskell
Что не мешает взять и написать свой хотя бы ради практики
источник

JS

Jerzy Syrowiecki in Haskell
вот парсеры форматов представления я иногда пописываю, это не трансляторы, а кодеки
источник

JS

Jerzy Syrowiecki in Haskell
Jerzy Syrowiecki
вот парсеры форматов представления я иногда пописываю, это не трансляторы, а кодеки
которые ещё не были ранее написаны
источник

AP

Aleksei (astynax) Pi... in Haskell
Иногда не хочется тащить целый внешний роутер. Либо работать приходится не с HTTP
источник

AP

Aleksei (astynax) Pi... in Haskell
Вон, для Gemini есть роутер от автора сервера. Но кто-то может захотеть сделать свой, менее "монадический"
источник

AP

Aleksei (astynax) Pi... in Haskell
К тому же иногда нужно просто работать с URI, не описывая сервер в принципе. Тут может пригодиться аппликативный решатель, работающий с уже разобранными сегментами пути
источник

AP

Aleksei (astynax) Pi... in Haskell
Парсеры URI обычно просто возвращают список сегментов пути, не более
источник

AP

Aleksei (astynax) Pi... in Haskell
Этот список можно "парсить" дальше
источник

[

[BRM]White Rabbit in Haskell
Aleksei (astynax) Pirogov
Почему "парсер" сводится к "трансляторам"?
Потому что мне интересна тема коданализа и построения синтаксических деревьев для возможной оптимизации(ну или той же трансляции), а хаскель даёт для этого мощнейшую семантику?
источник