@haskellru

Страница 1021 из 1551
Dmitry
27.03.2018
09:20:54
И как это приведёт к однократному пробегу?

Alexander
27.03.2018
09:22:22
data Once a = Once () a если таскать такое вместо a то последующие форсы не будут пробегать структуру

once :: NFData a => a -> Once a once a = Once (rnf a) a instance NFData (Once a) where rnf (Once () _) = ()

Dmitry
27.03.2018
09:23:40
Прикольно! :)

Google
Alexander
27.03.2018
09:23:47
https://www.schoolofhaskell.com/user/edwardk/snippets/once

Yuriy
27.03.2018
09:28:26
почему только последующие? похоже, что на эту структуру вообще rnf не действует как ожидается

Dmitry
27.03.2018
09:29:13
Не, там имеется ввиду, что надо где-то в коде дёрнуть once, а последующие force уже не будут на неё действовать

Yuriy
27.03.2018
09:30:23
но если не дёрнуть once, то force вообще никогда не будут действовать? в чём смысл слова "последующие" перед "force"?

Dmitry
27.03.2018
09:31:39
Ну так, да.

Pineapple
27.03.2018
09:32:33
Это структура в которой WHNF=NF (но создачать её можно только once)

Yuriy
27.03.2018
09:32:59
а, надо обернуть данные в once (sic!), а не в Once!

Alexander
27.03.2018
09:33:52
обернуть тип нужно в Once конечно же

создать Once можно вызвав метод once

Yuriy
27.03.2018
09:34:34
Alexander
27.03.2018
09:36:36
нужно, если у тебя есть другие возможности

Google
Alexander
27.03.2018
09:36:51
ладно, я в haskell лучше разбираюсь, чем в русском

Dmitry
27.03.2018
09:40:21
А подскажите, есть такая же уютненький канал/конференция по Gentoo?

Alexander
27.03.2018
09:40:51
https://t.me/russian_gentoo

@dmalkr ^

Anatolii
27.03.2018
09:41:02
есть по NixOS - давай лучше к нам

Alexander
27.03.2018
09:41:15
https://t.me/ru_nixos

забаньте этого спамера каналами!!1

Anatolii
27.03.2018
09:41:32
точно, забылл ссылочку:)

Leonid
27.03.2018
09:55:11
Haskell Windows developers, unite! I have a question for you. Does Windows Defender go nuts for you as well when you build with GHC? And if so, how do you deal with it? https://www.reddit.com/r/haskell/comments/87eukk/haskell_windows_developers_unite_i_have_a/

Виндоболь

Так, рассказывайте как вы переменными среды конфигурируете свои микросервисы на хаскеле.

какой либой?

Andrew
27.03.2018
10:21:11
А чем NixOS примечательная с т.з. программиста?

Чем она лучше arch или gentoo ?

Leonid
27.03.2018
10:21:46
с т.з. программиста достаточно nix

Anatolii
27.03.2018
10:26:13
не понял пока лучше это или хуже

Leonid
27.03.2018
10:26:49
так, 12 факторов говрят энв вары тру.

Yuriy
27.03.2018
10:28:27
lookupEnv

Leonid
27.03.2018
10:28:48
ну а валидация и вот это всё?

Google
Denis
27.03.2018
10:29:22
у нас optparse-applicative + подхачено кое-где, где оно не умеет как нам надо

Leonid
27.03.2018
10:29:38
а оно умеет переменные среды разве?

http://hackage.haskell.org/package/envy норм?

Alexander
27.03.2018
10:37:43
@lonokhov: createParser :: IO (ParserConfig) createParser = lookupEnv и поподставлять их в default

Denis
27.03.2018
10:37:52
а оно умеет переменные среды разве?
А, не. Я не другой вопрос ответил

Alexander
27.03.2018
10:38:11
мечтаю взять и наконец-то зопилить расширение для optparse-applicative

Alexander
27.03.2018
10:38:37
ну почему же, в общем-то не добавляет много бойлерплейта

но уродски, да

с другой стороны более хорошего совмещения cli+env я не видел

можно hflags ещё

если любишь TH и тонны опций без деклараций явных

Leonid
27.03.2018
10:40:14
А нужен ли cli?

Anatolii
27.03.2018
10:40:31
мне cli удобен тем что видно что я не проставил

default я как-то не оч хочу

Alexander
27.03.2018
10:40:53
тестить с cli удобно

Alexander
27.03.2018
10:44:11
чтобы можно было указывать env "varname" и переменная искалась и в окружении

Leonid
27.03.2018
10:45:01
https://github.com/pcapriotti/optparse-applicative/issues/118 типа

? animufag ?
27.03.2018
10:46:12
ого 2015

Google
Leonid
27.03.2018
10:46:22
всего 3 года назад

? animufag ?
27.03.2018
10:46:53
ну тип видимо никто ничего не сделает пока не найдётся герой

но кейз на самом деле неочевидный.

Leonid
27.03.2018
10:47:23
героя мы нашли, осталось что-бы герой собрался

Alexander
27.03.2018
10:48:22
@vlastachu вполне себе очевидный

? animufag ?
27.03.2018
10:49:27
я просто не ожидал бы что в зависимости от энва аргументы подбираются тип в гите в каком то роде такое работает но там ты по сути явно видишь что это переменные

Alexander
27.03.2018
10:49:31
а в парсере это сложно было

Denis
27.03.2018
10:49:42
а hie кто-то пользуется?

пока похоже на еще один способ сделать емакс неотзывчивым

Alexander
27.03.2018
10:49:55
брать значение из cmdline или окружения это абсолютно нормально

можно конечно понаписать костылей в виде юнитов

которые будут одно в другое переделывать

A64m
27.03.2018
10:59:31
а hie кто-то пользуется?
я, но не с емаксом, естественно

Denis
27.03.2018
11:00:55
надо на маленьком проекте пробовать, у меня на рабочем все нафиг повисло и надо дебажить то ли сконфигурировано неправильно, то ли так оно и работает

сейчас некогда, выключил

A64m
27.03.2018
11:10:40
на 5kloc как-то работает, но естественно ему столько же времени требуется сколько для того, чтоб в ghci загрузить. Но хоть не для каждого второго запроса, он собранные данные кеширует

? animufag ?
27.03.2018
11:27:09
> parseOnly (string "\\" <> ((string "\"" <> string "1") <|> string "2")) "\\21\"\\" Right "\\" я так понимаю моноид работает не так как я ожидал

аттопарсек

Aleksey
27.03.2018
11:27:34
как "или"

? animufag ?
27.03.2018
11:27:37
а как бы мне конкатить эти строки?

Google
? animufag ?
27.03.2018
11:27:45
ооого

Aleksey
27.03.2018
11:27:57
fmap mconcat . sequence

kana
27.03.2018
11:28:22
Или лифтом

Aleksey
27.03.2018
11:28:52
тут более двух кусков. Тут уж проще sequence

Два можно было бы через (<>) <$> p1 <*> p2

? animufag ?
27.03.2018
11:40:10
чёт думал что где-нибудь найдётся

https://www.stackage.org/haddock/lts-11.2/stack-1.6.5/Data-Attoparsec-Combinators.html#v:appending

написал (<++>) = liftA2 (<>) тк там реально нужен <|> и всё в список не затолкать странно получается в контексте парсера как-то нет разницы <> или <|>

Aleksey
27.03.2018
11:46:41
Исторически так сложилось.

Alexander
27.03.2018
11:52:29
а собирать HashMap через foldr index в стримах это нормально?

foldr HM.insert

или не эффективно?

A64m
27.03.2018
11:53:44
fromList эффективнее, он изменяет дерево на месте

Yuriy
27.03.2018
11:54:00
конкатить прочитанные строки или конкатить грамматики? string "a" *> string "b" будет матчить "ab"

Alexander
27.03.2018
11:54:56
@A64m_qb0 даже с учетом того, что в первом случае массив не создастся?

Alexander
27.03.2018
11:56:24
ну если я из стримовой функции верну список, который потом кину в fromList то он его не итеративно выдаст, а аллоцирует

хм.. вопрос снят

A64m
27.03.2018
11:56:49
а, нет, я не про то, конечно, что надо через список

а про то что эта функция использует какой-то там опасный мутирующий инсерт

который, ясное дело, быстрее

Alexander
27.03.2018
11:57:29
т.е. у меня fromList <$> stream vs fold_ HM.insert

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