@haskellru

Страница 1353 из 1551
Index
19.07.2018
20:44:41
data T1 = MkT1 A B C data T2 = MkT2 A (B :*: C) -- not really but you get the idea

A64m
19.07.2018
20:44:43
это точно? что кроме анпака там на представление влияет?

Index
19.07.2018
20:44:51
наверняка в один Generic раскроется

Или там будет вот это поле обернуто в какой-нибудь K?

Google
A64m
19.07.2018
20:45:40
нет, будет метой отличаться, он для вложенного конструктора метаинформацию добавит же

Index
19.07.2018
20:45:47
понял

ну тогда да, можно реассоциировать и будет работать

лучше бы сразу generics-sop были, а не эти вложенные страсти

А, ну в общем-то можно для структурной эквивалентности брать https://hackage.haskell.org/package/generics-sop-0.3.2.0/docs/Generics-SOP.html#t:Code и сравнивать

прям посредством ==

structuralCast :: (Code a == Code b) ~ True => a -> b structuralCast = unsafeCoerce

Хотя это всякие ньютайпы не снимет, надо вместо == пройтись по этим кодам и раскрыть все это в Coercible-констрейнты

M
20.07.2018
10:54:03
лол

Alexander
20.07.2018
11:01:51
исчез..

? animufag ?
20.07.2018
16:34:23
ахах

Dmitry
20.07.2018
16:38:44
бесполезно. но вообще настроить автоматический бан по длине ника - не самая плохая идея

ну или длине/частотам - скормить какой-нить нейросетке или тупо в knn

Google
Denis
20.07.2018
17:19:53
подскажите, как сделать, чтобы пустой массив тоже парсился? P.parse (P.between (P.char '[') (P.char ']') $ P.sepBy P.anyChar (P.char ',')) "" "[]"

Ilya
20.07.2018
17:37:16
мне кажется anyChar консьюмит ']'

и всё взрывается

это парсек?

можно заменить P.anyChar на P.noneOf "]"?

Denis
20.07.2018
17:54:00
можно заменить P.anyChar на P.noneOf "]"?
[1,2,3] но надо и такое парсить например

Ilya
20.07.2018
17:54:31
ну оно будет парситься же

там даже наверное нужно будет P.noneOf "],"

Denis
20.07.2018
17:55:18
ну оно будет парситься же
напиши весь код) я чот под вечер не догоняю

Ilya
20.07.2018
17:55:43
P.parse (P.between (P.char '[') (P.char ']') $ P.sepBy (many $ P.noneOf "],") (P.char ',')) "" "[]"

Denis
20.07.2018
17:58:50
P.parse (P.between (P.char '[') (P.char ']') $ P.sepBy (many $ P.noneOf "],") (P.char ',')) "" "[]"
я если мне надо какой-то специфичный парсер отличный от anyChar

Ilya
20.07.2018
17:59:38
ну с большой степенью вероятности этот парсер не будет ожидать первым символом , или ] и всё будет работать

kana
20.07.2018
17:59:43
длинный ник не значит реклама

а банить человека за просто длинный ник это шиза какая-то

потом будем черных банить

Denis
20.07.2018
18:02:31
Igor
20.07.2018
18:02:56
потом будем черных банить
И с анимешными аватарками ?

Denis
20.07.2018
18:03:00
что если так?

Ilya
20.07.2018
18:04:12
да скорее всего тебе это не нужно, просто myParser оставь

Google
kana
20.07.2018
18:04:23
И с анимешными аватарками ?
а у меня аватарка с реальным мной)

Denis
20.07.2018
18:04:38
Ilya
20.07.2018
18:04:51
да пофиг

это уже захендлит sepBy

Антон
20.07.2018
18:05:08
а у меня аватарка с реальным мной)
А, так вот что это за андрогинный юноша

Ilya
20.07.2018
18:05:10
если твой парсер не законсьюмит запятую или скобочку

Alexander
20.07.2018
18:05:13
а у меня аватарка с реальным мной)
да я видел, когда брагилевский фоткал аудиторию, там был человек как на аватарке

в парсере просто парсер элемента не должен считать ] подходящим символом

Denis
20.07.2018
18:06:20
да пофиг
noneOf "[," есть anyToken без [ или ,?

Ilya
20.07.2018
18:06:42
да

Alexander
20.07.2018
18:07:14
просто anyChar-ом внутри собирать - это так себе идея

Denis
20.07.2018
18:07:51
хм, а как lookAhead использовать?

Alexander
20.07.2018
18:18:01
это который следующий токен берет или вообще вверх без консьюма смотрит?

kana
20.07.2018
18:18:07
мы с тобой стояли после лекций, я такси ждал

ну ясно все

Alexander
20.07.2018
18:18:27
я знаю

я конечно людей не очень запоминаю, но не настолько же

Admin
ERROR: S client not available

Alexander
20.07.2018
18:20:24
у меня несерьёзные комментарии что-ли настолько неочевидных?

Google
Ilya
20.07.2018
18:23:42
хм, а как lookAhead использовать?
ты уверен, что оно тебе надо?

как минимум в озвученной задаче это не выглядит необходимым

Алексей Ayaye :)
20.07.2018
18:54:03
lookAhead по идее нужен, когда грамматика локально выходит за рамки класса, с которым умеет штатно работать конкретный генератор парсеров. например, грамматрика везде LL(1), а вот тут - 3, то есть, решение на основе одного следующего токена принять нельзя, надо посмотреть на 3. Или вообще попробовать распарсить на неизвестное количество токенов и на основе результата принять решение.

Алексей Ayaye :)
20.07.2018
18:58:07
A64m
20.07.2018
19:42:40


Антон
20.07.2018
21:11:48
а какая разница? понятие lookahead от языка не зависит
Это я к тому, что в C и C++ настолько дурацкая грамматика, что для корректного парсинга может потребоваться неограниченный в теории lookahead. И ещё в этих языках парсер обращается к тайпчекеру, потому что без этого некоторые конструкции не в состоянии распарсить

Yuriy
20.07.2018
21:17:36
вроде как раз С легко парсить, это С++ страшен

Антон
20.07.2018
21:25:09
Yuriy
20.07.2018
21:27:21
Оператор запятая
ты не можешь по предшествующему коду её отличить от аргументов функции или как?

Антон
20.07.2018
21:43:23
Ну и типы функций в аргументах читаются по спирали

Maxim
21.07.2018
13:29:41
интересно, есть линзы из тип суммы и можно ли как-то сделать view (l1 or l2 or l3)? чтобы выбирать линзу как-то автоматически
я решил эту задачу для себя так: ```pre (l1 `failing l2 failing` l3) . non (error "impossible")```, потому что уверен, что `l1, l2, l3` дизъюнктны и покрывают всю возможную область

ох как телеграм испортил всё, тьфу

Maxim
21.07.2018
13:35:33
``` pre (l1 `failing` l2 `failing` l3) . non (error "impossible") ```

нет, я сдаюсь

Хрупко
ну... да ?‍♂️

Pig
21.07.2018
13:36:11
pre (l1 `failing` l2 `failing` l3) . non (error "impossible")

Google
Maxim
21.07.2018
13:37:00
интересно, почему isn't в линзах стандартно, а is запихали в Extras

Pig
21.07.2018
13:37:01
Перемудрили с редактированием, раньше проще было

Maxim
21.07.2018
13:37:17
согласен

Yuriy
21.07.2018
13:49:12
интересно, почему isn't в линзах стандартно, а is запихали в Extras
потому что надо паттернматчить вместо is

Maxim
21.07.2018
13:50:12
ты предлагаешь мне делать case foo of Bar -> setSmth True; Baz -> setSmth False вместо setSmth $ is _Bar foo?

Yuriy
21.07.2018
13:50:20
ох как телеграм испортил всё, тьфу
увы, даже то, что в редакторе выглядит отформатированным, при сохранении тупо вставляет маркдаун

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