
Ilya
26.06.2018
13:18:44
хотя я давно смотрел

Ilya
26.06.2018
13:18:45

Alex
26.06.2018
13:19:17
Мне нужно до конца строки
до \n

Google

Index
26.06.2018
13:19:27
а, строку в смысла line, а не string

Alex
26.06.2018
13:21:07
Да

Index
26.06.2018
13:21:08
takeWhileP (/='\n') как вариант

Евгений
26.06.2018
13:21:12
manyTill?

Index
26.06.2018
13:21:34
я советую takeWhileP, потому что он быстрее

Alex
26.06.2018
13:21:58
Спасибо
Не выходит
'''
takeWhileP (\a -> a /= '\n') '''
Так тоже не выходит

Yuriy
26.06.2018
13:32:59
что значит "не выходит"?
получается что-то другое?

Alex
26.06.2018
13:34:07
* Couldn't match expected type `Maybe String'
with actual type `Char -> Bool'
* The lambda expression \ a -> a /= '\n' has one argument,
but its type `Maybe String' has none
In the first argument of takeWhileP', namely (\ a -> a /= '\n')'
In a stmt of a 'do' block: takeWhileP (\ a -> a /= '\n')
|
27 | takeWhileP (\a -> a /= '\n')

Google

Yuriy
26.06.2018
13:35:26
так это не "кобыла не едет", а ты её не запряг ещё

Alex
26.06.2018
13:35:56
Хорошо, а что делать?

Yuriy
26.06.2018
13:36:17
вызвать takeWhileP правильно

Alex
26.06.2018
13:36:26
А что у меня неправильно?

Yuriy
26.06.2018
13:36:28
для этого почитать её документацию, например

Alex
26.06.2018
13:36:40
Я читаю

Yuriy
26.06.2018
13:37:05

Denis
26.06.2018
13:38:50
ну или если так хочется, то или сечение или flip

Yuriy
26.06.2018
13:39:11

Denis
26.06.2018
13:39:46
будет не первым, а вторым

Yuriy
26.06.2018
13:39:53
там аргумент просто пропущен

Denis
26.06.2018
13:40:15
аа
ок

Yuriy
26.06.2018
13:40:23
хоть флипай, хоть не флипай, а другой аргумент передавать надо

Alex
26.06.2018
13:41:20
И я не понял
ЧТо нужно передавать первым аргументом
Объясни пожалуйста

Yuriy
26.06.2018
13:42:05
takeWhileP
:: Maybe String -- ^ Name for a single token in the row
-> (Token s -> Bool) -- ^ Predicate to use to test tokens
-> m (Tokens s) -- ^ A chunk of matching tokens
первый аргумент — Maybe String — ^ Name for a single token in the row

Google

Alex
26.06.2018
13:42:43
Что это значит
Похоже я не понимаю что эта штука делает вообще
Мне нужно просто взять все символы до конца строки

Yuriy
26.06.2018
13:43:12
это уже не про хаскель
https://translate.yandex.ru/?lang=en-ru&text=Name%20for%20a%20single%20token%20in%20the%20row

Евгений
26.06.2018
13:43:31
Ппц ты токсичный

Yuriy
26.06.2018
13:43:52

Index
26.06.2018
13:44:02
Просто передай туда Nothing
это используется для сообщений об ошибках парсинга только

Alex
26.06.2018
13:44:25
Спасибо:)

Yuriy
26.06.2018
13:44:56

Alex
26.06.2018
13:45:11
Все ок,

Евгений
26.06.2018
13:45:32
Швырять удочку в дальний угол и говорить "фас" -- токсично
В парсеке такой фигни не было

Ilya
26.06.2018
13:46:55
@int_index быстрее ответил, чем я успел написать "попробуй Nothing", не открывая гайд ?

Yuriy
26.06.2018
13:47:58
а, это ведь мы посоветовали в таком виде вызывать. прошу прощения, если показался грубым

Index
26.06.2018
13:48:24
я так посоветовал потому что не помнил про этот аргумент
и сходу даже не скажу, зачем он там вообще, казалось бы takeWhileP даже зафейлиться на может, я только знаю как он в takeWhile1P используется

Ilya
26.06.2018
13:49:18
ну я, собственно, вообще этот фунцией никогда не пользовался ? но судя по типу, должно было быть что-то не шибко важное

Google

Alex
26.06.2018
14:51:33
Джентельмены, вопрос насчет датаконструкторов, есть вот такой тип:
data Field_T = String String String
Как мне его создать
С произвольными строками?
С любыми
Field_T "" "" "" ?

Denis
26.06.2018
14:53:36
data Field_T = Field_T String String String

Yuriy
26.06.2018
14:53:47

Denis
26.06.2018
14:53:47
это же контруктор

Alex
26.06.2018
14:54:12
Ага
Скажите пожалуйста, что я делаю неправильно return (Field_t typename, varname, default_value)

Admin
ERROR: S client not available

Alex
26.06.2018
14:58:00
Оно не матчится почему-то

Misha
26.06.2018
14:59:11
запятые надо убрать

Denis
26.06.2018
14:59:14
а запятые зачем?
:D

Alex
26.06.2018
14:59:27
ой
Спасибо:)

Denis
26.06.2018
14:59:49
return $ Field_t typename varname default_value

Kirill
26.06.2018
15:40:37
через async выполняется 2 потока: основной и дополнительный - я ведь правильно понимаю, что если у меня IOException может выстрелить в любом из них, то невозможно определить откуда пришло исключение - из кода текущего потока или через async от сдохшего 2-го потока?

Pineapple
26.06.2018
15:41:53
Там разные wait есть. Есть такие, что возвращают результат или исключние

Google

Leonid
26.06.2018
15:42:10
ты линкуешь асинки друг к другу?

Kirill
26.06.2018
15:45:02
а или падение онож будет если wait будет вызван

Pineapple
26.06.2018
15:45:18
Да. Исключения прилетают через wait

Leonid
26.06.2018
15:45:37
еще есть link
На чём нынче принято писать классический веб с формочками? Есод не предлагать
На серванте что-то стрёмно

Alex
26.06.2018
15:47:24
Помогите пожалуйста, с мегапарсеком, как сделать так, чтобы когда many натыкался на поле, которое он не может распарсить он давал парсить следующей штуке
Например

Denis
26.06.2018
15:47:45

Kirill
26.06.2018
15:48:05
@lonokhov я вот с линком я так понимаю уже всё хреново?
хотя там же ExceptionInLinkedThread

Leonid
26.06.2018
15:48:35

Kirill
26.06.2018
15:48:42
не-не

Leonid
26.06.2018
15:48:43
А, ну да

Kirill
26.06.2018
15:48:53
всё оке
чот запутался в трёх соснах

Alex
26.06.2018
15:50:38
альтернативы?
Я просто не понимаю, у меня есть вот произвольно количество строк, которые ест many. Но как сделать так, чтобы когда many не может отпарсить, у меня вызывался другой комбинатор
????

Pineapple
26.06.2018
15:51:55
many1? Потому что many счастливо спарсит 0 раз и вернёт пустой список

Alex
26.06.2018
15:53:23
Я такого найти не могу
Где оно объявлено?

Denis
26.06.2018
15:54:46
many1 можно через many сделать вроде

Alex
26.06.2018
15:55:10
Я подозрева., что нужно просто везде юзать try?