Aleksei
-)
Григорий
лул
Aleksei
а давайте попробуем тему закончить
Aleksei
а не просто попиздеть
Aliester
Суть такова
Aleksei
пардон за мой французский
A64m
Aliester
Программы можно писать хоть на цепях Маркова
Aleksei
можно
Aleksei
но маленько некомфортно писать сколько нибудь сложную систему
Aliester
Вопрос в соответствии доменной логики философии и понятиям используемого языка и тулинге
Дмитрий
Aleksei
вопрос в возможности адаптации языка к доменной логике
Aleksei
я, как разработчик, хочу в конечно итоге получить настраиваемый интрумент
Aleksei
который при минимальном усилии бы мог адаптироваться под похожии модели
Aleksei
а я получать бабло
Aleksei
-)))
Aleksei
и заниматься опенсорцом
Aleksei
потому что мне прикольно
Aleksei
just for fun
A64m
Благодарю!
не понял только какое обобщение типов планируется делать. можно какой-то псевдокод того, что хотелось бы писать но нельзя?
Антон
Aleksei
Плодить множество типов вообще ни к чему. Займитесь все же теорией групп. Может понятнее станет.
Aleksei
Хотя бы тезисно
Дмитрий
Да собственно, то что хотелось бы писать TH уже пишу, просто эстетически мне это не нравится :(
а псевдокод (рабочий!!)
type1OfSignals = toList $ do
"sig1" +: [["NodeId"]]
"sig2" +: []
"req3" +: [["B.ByteString"], ["Chan", "MsgToSender"]]
type2OfSignals = toList $ do
"sig4" +: [["IP"]]
"sig5" +: []
"req6" +: [["B.ByteString"], ["Chan", "MsgToSender"]]
type3OfSignals = toList $ do
"sig6" +: [["IP"]]
"sig7" +: []
"req8" +: [["B.ByteString"], ["Chan", "MsgToSender"]]
genType "signalsForNodeType1" $ type1OfSignals <> type2OfSignals
genType "signalsForNodeType2" $ type2OfSignals <> type3OfSignals
genType "signalsForNodeType3" $ type3OfSignals <> type1OfSignals
A64m
так я и спросил именно псевдокод, чтоб видеть как должно быть эстетически приемлемо
A64m
ну и интересно-то не объявление в первую очередь а пример обобщенной функции которая с таким будет работать
Aleksei
+1
Aleksei
зачем?
Aleksei
Зачем вообще 3 типа сигналов?
Aleksei
для начала
Дмитрий
предпологается, что тип в одной строке не появляется дважды... поэтому имя линзы по типу определяется однозначно... пока.
Aleksei
предположения должны быть записаны
Aleksei
ну так "сливай" то что не матчится
Дмитрий
Aleksei
в этом и смысл фунцкционального программирования
Aleksei
как в школе
Aleksei
дано
Aleksei
решение
Aleksei
результат
Aleksei
если не все данные смог описать то фигово
Антон
И оценки по пятибалльной системе, ага
Дмитрий
Оно матчится, но смысл матчить, если можно гарантирровать, что тебе просто не смогут послать лишнего?
Aleksei
чем это гарантировано?
Aleksei
ты программируешь функцию
Дмитрий
Тем, что канал типизирован.
Aleksei
она должна всегда одно на входе и одно на выходе давать
Aleksei
без вариантов
Aleksei
если нужны типы
Aleksei
то ты должен типизировать вход
Aleksei
нужны гарантии
Aleksei
вычислений
Дмитрий
Так я и типизирую вход, так, чтобы в него могли запихнуть ровно то, что умеют обрабатывать на выходе.
A64m
Дмитрий
Нет... призмы там пока не применяются.
Ладно... в целом пока всё хорошо. Эстетику оставим в стороне, тем более как выглядит идеал вопрос сложный и не до конца ясный...
A64m
но это же АТД с нескольими конструкторами которые объединяются в другие?
Aleksei
блин, опять какое-то абстракционирование идет
Aleksei
не знаю как по русски
Дмитрий
DoList - это...
Aleksei
УЖАС это
Дмитрий
https://www.stackage.org/lts-10.3/package/do-list-1.0.1
Aleksei
разве прикольно понимать, то что другие не понимают
Aleksei
?
Aleksei
мы решаем по большому счеты задачи
Aleksei
которые относятся к классическим морфизмам
Aleksei
но как моей маме это обяснить?
Aleksei
так просто блин функция
Aleksei
как ей объяснить что выпечка хлеба - морфизм?
Aleksei
А зачем тогда это надо если моя мама это не понимает?
Дмитрий
Aleksei
ну всегда были вроде математики
Aleksei
а сейчас вдруг все это рядом стало
Дмитрий
Ага, верно.
Дмитрий
Ладно, я спать...