
Alex
27.06.2018
11:05:16
но в конце может быть запятая
Или вот тоже может быть a,
Или без запятой
Мне нужно вернуть две строки, одна пустая если отсуствует какое либо значения

Google

Ilya
27.06.2018
11:06:05
clexem [= clexem] [,]

Yuriy
27.06.2018
11:06:08
а, ну это точно optional

Ilya
27.06.2018
11:06:17
как-то так?

Alex
27.06.2018
11:06:26
Да
Верно

Ilya
27.06.2018
11:07:10
странно, конечно, что запятая, как Гамлет, не может решить, быть или не быть

Alex
27.06.2018
11:07:25
Это все сишные енумы
Там в конце запятая может быть или не быть

Ilya
27.06.2018
11:08:19
clexem <*> optional (char '=' *> clexem) <* optional (char ',')

Alex
27.06.2018
11:09:26
А как мне модифицировать это так, чтобы моя функция возвращала a и b?

Ilya
27.06.2018
11:09:58
ну, если не запятая, там должен быть вайт-спейс? или ньюлайн только? я не помню синтакс енамов
мой код, кстати, вообще не тайпчекется
ну, в do все заверни

Google

Ilya
27.06.2018
11:11:41
do
a <- clexem
b <- optional (char '=' *> clexem) -- b is Maybe
return (a, b) -- or whatever
забыл запятую

Alex
27.06.2018
11:14:44
А как мне вытащить значение b из maybe?
То есть если b nothing то поместить вместо него пустую строку?
Все
Я нагуглил
Я запустил
Почему b всегда nothing

Yuriy
27.06.2018
11:22:02

Alex
27.06.2018
11:22:21
Хочется поиграться с хаскелем

Yuriy
27.06.2018
11:22:24

Alex
27.06.2018
11:22:37
pos123 :: Parser Position
pos123 = do
do
a <- clexem
b <- optional (char '=' *> clexem)
case b of
Just b -> return ( Position a b)
Nothing -> return ( Position a "")
-- class

Yuriy
27.06.2018
11:23:07
в char '=' *> clexem, кажется, не учитывается пробел

Alex
27.06.2018
11:23:57
Да
Так и есть
Я кажется уже и сам поправлю
Спасибо большое

Maxim
27.06.2018
11:26:10
можно сделать return $ Position a $ fromMaybe "" b
и никаких кейсов не надо

Alex
27.06.2018
11:35:57
Все

Google

Alex
27.06.2018
11:36:02
Все пашет как нужно
Большое спасибо:)
А как в кабеле добавить еще один source файл в качестве библиотеки?
У меня по дефолту есть Lib.hs
А как еще одну добавить?

Yuriy
27.06.2018
13:18:03
перечислить имена модулей (не файлов) в exposed-modules
или other-modules

Alex
27.06.2018
13:19:27
Понял, спасибо:)

Timofey
27.06.2018
13:20:23
Открытый вопрос - кто-то в проде использует shake?

Yuriy
27.06.2018
13:20:50
см. project Hadrian

Timofey
27.06.2018
13:23:00
Да, уже видел эту новость. Мне бы какие-то примеры, где люди выбрали shake не имея какой-то предшествующей привязки к экосистеме хаскеля
Я бегло погуглил, но единственная вменяемая success story - это миграция в Standard Chartered, да и та без каких-то конкретных фактов
А хочется - "Была каша из сконса/питона, нужен был фуллтайм синьор это всё поддерживать, компилилось 5 минут, после миграции компилится 30 секунд, поддерживается джуном на полставки" =)

Alexander
27.06.2018
13:29:01
спросил в рабочем чятик, если что ответят напишу

Timofey
27.06.2018
13:29:09
Спасибо

Dmitry
27.06.2018
13:31:08
Я смигрировал как-то питонолапшу на шейк, но потом другой человек перемигрировал на паппет
Так себе история успеха

Ilya
27.06.2018
13:37:24
https://github.com/swift-nav/shake-before-make/blob/0a47f66015a1cf4f742f2c938b3d75c1ff070ac9/Shake.pdf

Google

Ilya
27.06.2018
13:37:41
прилетело в Haskell Weekly
некий старап в СФ использует

Yuriy
27.06.2018
13:41:50
я пробовал в одном проекте внедрить, но понял, что Шейк не эквивалент Мэйку, и местами выходит сложнее, вернулся на Мэйк

Ilya
27.06.2018
14:01:23
шейк для совсем простых вещей выходит сложнее, да
с другой стороны, по мере возрастания сложности, шейк должен начинать выигрывать
(если что, я сам шейк не использовал, только пейпер читал, но доводилось копаться в ядерных мейкфайлах, многие вещи оттуда на шейке выглядели бы изящнее)

Ilya
27.06.2018
14:14:15
Что за shake? Чем лучше GNU/make?

Admin
ERROR: S client not available

Ilya
27.06.2018
14:16:27
совсем другой
начиная с того, что это EDSL внутри хаскеля

Yuriy
27.06.2018
14:31:23
и заканчивая тем, что не подходит ни для чего за пределами сборки

Andrei
27.06.2018
14:32:27
эээ. как что-то плохое.

IC
27.06.2018
14:54:00
А что ещё есть за пределами сборки в Make?..

Alex
27.06.2018
14:58:29
foldl (++) "" str
А как сделать так, чтобы еще запятые добавляла между элементами?

Ilya
27.06.2018
14:59:57
intersperse/intercalate
или возьми сразу библиотеку для претти-принтинга (кстати, какую сейчас правильно юзать?), там есть punctuate

Alex
27.06.2018
15:02:43
Спасибо

Ilya
27.06.2018
15:10:24

Artem
27.06.2018
15:12:02

Google

Ilya
27.06.2018
15:12:28
может человек фолдами учится пользоваться, откуда я знаю

Yuriy
27.06.2018
15:13:48

IC
27.06.2018
15:23:44
и чем это отличается от "сборки"?

Yuuri
27.06.2018
15:24:23

IC
27.06.2018
15:24:58

Yuuri
27.06.2018
15:25:49
А я не говорю, что не может, я Shake не знаю.

Ilya
27.06.2018
15:26:04

Yuuri
27.06.2018
15:29:21
Да я ж спорю разве? Поэтому и используют (хотя всё-таки предпочитают всякие более специализированные Snakemake, ну кто что умеет)
Надо будет попробовать Shake для этой цели, а то задрало динамические ошибки ловить.
https://github.com/PapenfussLab/bioshake опачки, даже такая штука есть

Yuriy
27.06.2018
15:54:53
и чем это отличается от "сборки"?
короче, свелось к тому, что make смотрит только на файлы, а shake на свою базу. базу можно дропнуть, и shake пойдёт пересобирать, когда всё уже собрано. нам это не подходило совсем.
сейчас думается, что можно просто написать обёртки для проверки наличия файла и даже специальные операторы, которые эти обёртки включают. тогда нам показалось, что кода становится в разы больше, а пользы меньше.

Leonid
27.06.2018
15:59:26
Зато в шейке можно пересобирать при изменении команд только то что нужно, а в мейк нет
Оракулы сила

Yuriy
27.06.2018
16:29:45
хочу посмотреть, что генерит deriving Show, и немного поправить для себя. как?
-ddump-deriv?
действительно
спасибо, чят

Алексей Ayaye :)
27.06.2018
16:33:33
обращайтесь )