@haskellru

Страница 782 из 1551
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
https://www.stackage.org/lts-10.3/package/do-list-1.0.1
ну понятно что это такой синтаксис для списков, которые потом передаются для генерирования кода, я про то что планируется получить

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
http://www.functionaljava.org/
https://github.com/xgrommx/awesome-functional-programming#java

Слава
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
А какие есть пакеты упрощающие работу с TH?
th-lift например, смотря что под упрощать имеется ввиду

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

Alexander
27.01.2018
08:05:02
Int | Double
| = `Either`

Взять структуру скобками и поменять в ней какой-то кусок чем-то походим на map, например, имена. Первое, что в головуц приходит.
но это-то как раз это в ТН нормально, матчинг по топлевел структуре не очень конечно, а дальше все хорошо

Дмитрий
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
Не очень это мягко сказано, но может я что-то упустил? Мне хотелось бы видеть функцию с типо f: (a->b) -> Epx -> Exp, Для примеру... не знаю, думаю пока.
есть же инстансы дженериков для TH, т.е. lens, uniplate, syb и т.д. можно темплейтхаскельное аст переписывать

Дмитрий
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) можно полноценно матчить

Страница 782 из 1551