Евгений
Швырять удочку в дальний угол и говорить "фас" -- токсично
Евгений
не обзывайся, а перехватывай знамя
@int_index быстрее ответил чем я успел открыть гайд по мегапарсеку
Евгений
В парсеке такой фигни не было
Ilya
@int_index быстрее ответил, чем я успел написать "попробуй Nothing", не открывая гайд 🙂
Cheese
а, это ведь мы посоветовали в таком виде вызывать. прошу прощения, если показался грубым
Vladislav
я так посоветовал потому что не помнил про этот аргумент
Vladislav
и сходу даже не скажу, зачем он там вообще, казалось бы takeWhileP даже зафейлиться на может, я только знаю как он в takeWhile1P используется
Ilya
ну я, собственно, вообще этот фунцией никогда не пользовался 🙂 но судя по типу, должно было быть что-то не шибко важное
Alex
Джентельмены, вопрос насчет датаконструкторов, есть вот такой тип: data Field_T = String String String
Alex
Как мне его создать
Alex
С произвольными строками?
Alex
С любыми
Alex
Field_T "" "" "" ?
Зигохистоморфный
data Field_T = Field_T String String String
Cheese
Джентельмены, вопрос насчет датаконструкторов, есть вот такой тип: data Field_T = String String String
выглядит так, будто автор забыл написать собственно датаконструктор
Зигохистоморфный
это же контруктор
Alex
Ага
Alex
Скажите пожалуйста, что я делаю неправильно return (Field_t typename, varname, default_value)
Alex
Оно не матчится почему-то
Misha
запятые надо убрать
Зигохистоморфный
а запятые зачем?
Зигохистоморфный
:D
Alex
ой
Alex
Спасибо:)
Зигохистоморфный
return $ Field_t typename varname default_value
Kirill
через async выполняется 2 потока: основной и дополнительный - я ведь правильно понимаю, что если у меня IOException может выстрелить в любом из них, то невозможно определить откуда пришло исключение - из кода текущего потока или через async от сдохшего 2-го потока?
Алексей
Там разные wait есть. Есть такие, что возвращают результат или исключние
Leonid 🦇
ты линкуешь асинки друг к другу?
Kirill
а или падение онож будет если wait будет вызван
Алексей
Да. Исключения прилетают через wait
Leonid 🦇
еще есть link
Leonid 🦇
На чём нынче принято писать классический веб с формочками? Есод не предлагать
Leonid 🦇
На серванте что-то стрёмно
Alex
Помогите пожалуйста, с мегапарсеком, как сделать так, чтобы когда many натыкался на поле, которое он не может распарсить он давал парсить следующей штуке
Alex
Например
Kirill
@lonokhov я вот с линком я так понимаю уже всё хреново?
Kirill
хотя там же ExceptionInLinkedThread
Leonid 🦇
@lonokhov я вот с линком я так понимаю уже всё хреново?
да, исключения будут кидаться прямо в тред. Используй waitEither или как его там
Kirill
не-не
Leonid 🦇
А, ну да
Kirill
всё оке
Kirill
чот запутался в трёх соснах
Alex
альтернативы?
Я просто не понимаю, у меня есть вот произвольно количество строк, которые ест many. Но как сделать так, чтобы когда many не может отпарсить, у меня вызывался другой комбинатор
Alex
????
Алексей
many1? Потому что many счастливо спарсит 0 раз и вернёт пустой список
Alex
Я такого найти не могу
Alex
Где оно объявлено?
Зигохистоморфный
many1 можно через many сделать вроде
Alex
Я подозрева., что нужно просто везде юзать try?
Алексей
Control.Applicative.some
Алексей
many1 оно называлось в парсеке
Aleksei (astynax)
На чём нынче принято писать классический веб с формочками? Есод не предлагать
На всём, кроме Йесода, придётся эти самые формочки делать самому
Leonid 🦇
да это не сложно
Aleksei (astynax)
Ну может snap какой формы тоже умеет.
Aleksei (astynax)
да это не сложно
Пока форм мало - несложно
Leonid 🦇
ну не на реакте же мне фронт делать
Aleksei (astynax)
digestive-functor глянь для форм
Aleksei (astynax)
ну не на реакте же мне фронт делать
тут соль в кол-ве автоматизаций. Формы в Йесоде сделаны хорошо (это одна из немногих хороший фичей)
Leonid 🦇
ну digestive я использовал
Ю ли я? 🤔
На чём нынче принято писать классический веб с формочками? Есод не предлагать
Тем же вопросом задавался недавно, так и не определился
Aleksei (astynax)
В Yesod сносный hamlet, довольно приятный роутер, формочки опять же удобно сделаны - чик-чик и готовая обустрапленая форма с валидацией и прочим. Толко главное - не делать проект по шаблону :)
Alex
defines_ <- defines strInRow "protected:" Есть вот такая кострукция defines :: Parser [String] defines = many define Как сделать чтобы когда define фейлил, сразу вызывался strInRow "protected:" ( это тоже парсер)
Alex
помогите пожалуйста
Aleksei (astynax)
try?
Alex
Действительно
Alex
Блин
Alex
Я его не туда написал в прошлый раз
Alex
Видимо уже устал
Alex
Спасибо большое
Ю ли я? 🤔
> Толко главное - не делать проект по шаблону :) А что с ними?
Alex
Джентельмены, есть вот такая штука: data Msg = Msg String String [String] [String] [Fields_t] Есть какой-то способ подробне указать, что значит каждый параметр там? Я видел что то типа data A { String::name } можно плиз линк, как так делать, я не могу найти
Alex
Спасибо:)
Ю ли я? 🤔
Ссылка для новичка будет misleading, имхо
Ю ли я? 🤔
http://learnyouahaskell.com/making-our-own-types-and-typeclasses#record-syntax
Zen
Привет, братцы! Кто знает почему удалили сундучок мыслей darkus-а ?