Cheese
Cheese
Евгений
Как не приду в чат, тут постоянно баззворды обсуждают. "Декларативный" и "императивный" это слова, потерявшие сейчас всякий смысл. Пытаться натянуть слово, придуманное для пролога, на хаскель это такое. Аналогично тщетно натягивать понятия из раннего фортрана, который даже функции и процедуры не умел, на руби
Cheese
а мне субъективно ПОЛИЗ не кажется императивщиной
Cheese
Cheese
я согласен, что совсем строгих определений не дать. всегда найдётся человек с контрпримером
Dmitry
Евгений
ИМПЕРАТИВНОСТЬ
Dmitry
А
A64m
да с этим-то просто все, есть "голая" мутабельность - императивный, нет - декларативный. (Пролог - императивный)
Aleksei (astynax)
"с элементами", как нынче модно
Aleksei (astynax)
"Декларативный язык с идеологией ООП и элементами процедурщины"
Aleksei (astynax)
Нужны бейджики для гитхаба
Dmitry
По числу элементов?
Dmitry
Присваивать
Andrew
Aleksei (astynax)
[Динамически типизированный][ООП][ФП][Со сборкой мусора][Энергичный]
Aleksei (astynax)
Евгений
A64m
A64m
и некоторые избыточные
Denis
[MODERN][BLAZING-FAST][DYNAMICALLY-TYPED][FOR HUMANS]
Andrew
Хорошо, тогда монада это что? Я для себя думаю, что монада - это некое обобщение над вычислением. То есть я считаю что IO - монада, и да, IO является инстансом Monad.
Denis
если представить что монада это прилагательное, то все внезапно становится на свои места
Denis
> Я для себя думаю, что монада - это некое обобщение над вычислением.
Что значит обобщение?
Denis
Из такого определения неясно вообще ничего
A64m
A64m
(да и то в хаскельном смысле, только)
Denis
Масло - оно не масляное, а вот если помазать его маслом - тогда да, оно будет масляное
Denis
😂
Denis
Andrew
Я пойду лучше еще поучусь) А то действительно каша в голове пока что)
Denis
конечно каша! Особенно прочтя последние 150 сообщений здесь.
Denis
у меня бы тоже каша была
Андрей
👍
Andrew
😂 я просто запутался от тех людей (новички?)
Denis
головой надо мотать до превращения каши в густой гуляш
Aleksei (astynax)
Можно подождать просто - само "схватится" :)
Denis
"IO - это как бы монада, но вообще-то она не монада, а экземпляр Monad, хотя, строго говоря, она вообще не обязана быть монадой" - вот представьте, что новичок такое прочтёт... 😂
Andrey
если у новичков получилось запутать "не новичка" в таком тривиальном вопросе - то они опредделенно себя показали имхо )
Andrew
я новичок тоже
Denis
Все новички, кроме SPJ
Andrew
только только заканчиваю курс на степике
Андрей
Leonid 🦇
пишу инстансы к серванту, и у меня получаются оверлапящиеся ассоциированные тайп фэмели. На инстансах висит {-# OVERLAPPABLE #-}/ {-# OVERLAPPING #-}, но GHC всё равно ругается. ЧЯДНТ?
Denis
> а кто-то просто попиздеть зашёл)
В этом чате 741 участник. Большинство из которых зашли сделать именно то, что ты сказал. 😂
Андрей
зная базворды и фразы типа "если мы в списке, значит мы в монаде" можно выглядеть для кого-то хаскелистом
Anatolii
помогите выйти из монады
Anatolii
застрял в бесконечном списке
Andrey
помню, тоже в одном чате удивил присутсвующих заявлением, что ИО - не монада. потребовали объяснений )))
Denis
Andrey
выйти из монады - невозможно (С) же ))
Aleksei (astynax)
Ио - спутник
Dmitry
Dmitry
Для взлома матрицы
Anatolii
из vim-монады?
о, вим - монада, вот и заголовок для нового туториала
Denis
Emacs-монада
Denis
EmacsMonad
Andrey
картинки не приветствуются - http://ratbag.vkomi.ru/files/2015/01/help-me-get-out-from-dog.jpg
Denis
Aleksei (astynax)
"ViM - Vim is (a) Monad"
Anatolii
товарищи, а помошите картинку найти там где велосипедист и String -> String -> String -> String
Leonid 🦇
@catamorphism калька кода для Verb из Servant
instance {-# OVERLAPPABLE #-} (ToJSON (ErrUnion e), ToJSON r)
=> HasServer (RPC e r) ctx where
type ServerT (RPC e r) m = m (Either (OpenUnion e) r)
hoistServerWithContext _ _ nt = nt
route Proxy _ = methodRouter' $ \x -> (getHeaders x, getResponse x)
instance {-# OVERLAPPING #-} (ToJSON (ErrUnion e), ToJSON r, GetHeaders (Headers h r))
=> HasServer (RPC e (Headers h r)) ctx where
type ServerT (RPC e (Headers h r)) m = m (Headers h (Either (OpenUnion e) r))
hoistServerWithContext _ _ nt = nt
route Proxy _ = methodRouter' ([],)
Denis
Denis
Anatolii
вот кстати у Yi проблем нет - там вроде 3 монады целых
Anatolii
и есть YiM
Anatolii
не дурят людей хотя бы
Anatolii
Anatolii
мне она была нужна когда я увидел как флаги парсят ребята
Anatolii
тут конечно другой случай
Anatolii
interface{} -> interface{} -> interface{}
Leonid 🦇
@catamorphism тут красивее https://gist.github.com/sopvop/1b6bdbf35dc1d5105a061ef295836e15
Denis
Denis
но я не уверен
Leonid 🦇
Aleksei (astynax)