
Alexey
26.01.2018
22:39:25
ну так "сливай" то что не матчится

Дмитрий
26.01.2018
22:39:31

Alexey
26.01.2018
22:40:11
в этом и смысл фунцкционального программирования
как в школе

Google

Alexey
26.01.2018
22:40:23
дано
решение
результат
если не все данные смог описать то фигово

Антон
26.01.2018
22:40:57
И оценки по пятибалльной системе, ага

Дмитрий
26.01.2018
22:41:01
Оно матчится, но смысл матчить, если можно гарантирровать, что тебе просто не смогут послать лишнего?

Alexey
26.01.2018
22:41:44
чем это гарантировано?
ты программируешь функцию

Дмитрий
26.01.2018
22:42:27
Тем, что канал типизирован.

Alexey
26.01.2018
22:42:42
она должна всегда одно на входе и одно на выходе давать
без вариантов
если нужны типы
то ты должен типизировать вход

Google

Alexey
26.01.2018
22:43:45
нужны гарантии
вычислений

Дмитрий
26.01.2018
22:44:44
Так я и типизирую вход, так, чтобы в него могли запихнуть ровно то, что умеют обрабатывать на выходе.

A64m
26.01.2018
22:45:01

Дмитрий
26.01.2018
22:46:48
Нет... призмы там пока не применяются.
Ладно... в целом пока всё хорошо. Эстетику оставим в стороне, тем более как выглядит идеал вопрос сложный и не до конца ясный...

A64m
26.01.2018
22:47:33
но это же АТД с нескольими конструкторами которые объединяются в другие?

Alexey
26.01.2018
22:47:47
блин, опять какое-то абстракционирование идет
не знаю как по русски

Дмитрий
26.01.2018
22:48:11
DoList - это...

Alexey
26.01.2018
22:48:21
УЖАС это

Дмитрий
26.01.2018
22:48:37
https://www.stackage.org/lts-10.3/package/do-list-1.0.1

Alexey
26.01.2018
22:48:43
разве прикольно понимать, то что другие не понимают
?
мы решаем по большому счеты задачи
которые относятся к классическим морфизмам
но как моей маме это обяснить?
так просто блин функция

A64m
26.01.2018
22:50:14

Alexey
26.01.2018
22:50:23
как ей объяснить что выпечка хлеба - морфизм?

Дмитрий
26.01.2018
22:50:24

Google

Alexey
26.01.2018
22:51:09
А зачем тогда это надо если моя мама это не понимает?

Дмитрий
26.01.2018
22:51:37

Alexey
26.01.2018
22:51:42
ну всегда были вроде математики
а сейчас вдруг все это рядом стало

A64m
26.01.2018
22:52:36

Дмитрий
26.01.2018
22:52:55
Ага, верно.
Ладно, я спать...

Alexey
26.01.2018
22:54:23
Давай
Спокойной ночи
Я че то залип
В размышлениях

A64m
26.01.2018
22:56:05
Ага, верно.
как тут примерно https://gist.github.com/nkpart/c3bcb48c97c5ded6e277#file-err-hs-L13

Alexey
26.01.2018
23:00:16
Дмитрий Taras Serduke это ты? -)

Дмитрий
26.01.2018
23:00:45
Я точно не Тарас :))

Alexey
26.01.2018
23:00:57
Ладно, не суть важно. Код прикольный
я чет не уловил как он к теме относится просто
либа вообще класс. идея
но если бы чювак хоть раз работал на джава или других строго типизированнвх языках
то он бы понял что автокомплит врпинципе неплох
и этим джава лучше руби, например

Google

Alexey
26.01.2018
23:03:12
я к тому что
не стоит заводить полностью свой словарь
есть определенное сообщество
есть такая прекрасная либа
http://www.functionaljava.org/
но она не прижилась
потому что как и в скала, там свои коллекции
свои идеи

Admin
ERROR: S client not available

Denis
27.01.2018
03:07:11

Слава
27.01.2018
04:38:48

Dmitry
27.01.2018
07:01:54
Еще и упрощённая версия показана, как будто мы тут сложных вещей не понимаем

Alice
27.01.2018
07:12:51

Alexander
27.01.2018
07:59:52

Дмитрий
27.01.2018
08:02:52
Взять структуру скобками и поменять в ней какой-то кусок чем-то походим на map, например, имена.
Первое, что в головуц приходит.

Alexander
27.01.2018
08:05:02

Дмитрий
27.01.2018
08:16:01
Не очень это мягко сказано, но может я что-то упустил?
Мне хотелось бы видеть функцию с типо f: (a->b) -> Epx -> Exp,
Для примеру... не знаю, думаю пока.

Alexander
27.01.2018
08:39:40
в зависимости от того, что такая функция делает большой сложности написать я не вижу

Google

Alexander
27.01.2018
08:40:02
но с другой стороны это абуз TH какой-то

Дмитрий
27.01.2018
09:04:24
Да собственно это действительно не сложно (по крайней мере концептуально), я просто не дозрел пока, чтобы сесть писать свой набор инструментов для работы с AST.

A64m
27.01.2018
09:04:43

Дмитрий
27.01.2018
09:05:51
Я в TH не слишком глубоко, просто решаю прикладные задачи и подбираю набор инструментов, с которым это будет делать комфортнее всего.

Alexander
27.01.2018
09:09:32
это не про ТН а про хаскель в принципе

A64m
27.01.2018
09:09:51
ну вот линзовые дженерики https://hackage.haskell.org/package/lens-4.15.4/docs/Control-Lens-Plated.html со всякими обобщенными переписываниями деревьев, там же инстансы для ТХ

Alexander
27.01.2018
09:10:18
есть генерик инстанс описывающий любоэую структуру через базовую
и можно работать с базовой

A64m
27.01.2018
09:10:53
но я тек и не понял, почему для обсуждаемого случая уже готовое для класси-призм нельзя использовать

Alexander
27.01.2018
09:11:04
есть другие менее нативные подходы гбхожк любой структуры типа syb
по названиям выше смотрите пакет на хакадже
там статьи и документацию

Дмитрий
27.01.2018
09:12:54
Благодарю...

Alexander
27.01.2018
09:18:06
вон например в inline-r мы генерим Haskell код по аст которое вернул R
через ТН можно по похожему принципу идти, там через lift-th
syb и прочие работают как обобщенный проход по аст, например можно найти паттерн и переписать его на другой и далее по дереву, ну и куча хелперов дальше, прочти снизу вверх, сверху вниз или в обе стороны пока не сойдется
например hlint пакет основан на таком принципе, он правда свое представление обходит, а не представление TH но принципиальной разницы нет
если это для A | B, то я не уверен, что игра стоит свеч, конечно, можно улучшить матчинг такой структуры с помощью TH, но как-то это печально все равно
хотя вроде OpenUnion через Here a | There (OU as) можно полноценно матчить