@haskellru

Страница 150 из 1551
Konstantin
21.11.2016
09:13:42
http://fpconf.ru/ как так конфа 3 декабря, а я ни слова ни полслова не видел нигде

Anatolii
21.11.2016
09:14:33
В гитере гора инфы?

Konstantin
21.11.2016
09:15:25
где?

Anatolii
21.11.2016
09:15:55
https://gitter.im/ruHaskell/home

Google
Konstantin
21.11.2016
09:34:12
ясно

Kit
21.11.2016
11:41:19
Сколько там регистрация стоит?

Vladimir
21.11.2016
15:07:25
(\

А как можно сделать ленивый лист IO экшонов? Например, у меня есть IO (Maybe String) и таких бесконечный лист. Как бы мне сделать takeWhile isJust от него, чтобы он весь не эвалюэйтился?

sequence, насколько я понял, до конца эвалюэйтит

Misha
21.11.2016
21:08:52
http://hackage.haskell.org/package/base-4.9.0.0/docs/System-IO-Unsafe.html#v:unsafeInterleaveIO если я не ошибаюсь

но это некогерный способ

некошерный

Vladimir
21.11.2016
21:09:17
да, чет не очень кошерно)

Misha
21.11.2016
21:09:35
кошерный будет через pipes/conduits

но тут я уже не спец ни разу

Vladimir
21.11.2016
21:09:48
а типа нельзя как-нибудь LiftM сделать этого дела

хитрым способом

Google
Vladimir
21.11.2016
21:12:27
наверно проще не выеживаться и написать свою функцию без мапа)

Alexander
21.11.2016
21:47:15
loop [] = return [] loop (x:xs) = x >>= \case Nothing -> return x Just v -> fmap (v :) (loop xs) -- если строго или do vs <- unsafeInterleaveIO $ loop xs return (v:vs)

Misha
21.11.2016
21:47:27
возможно, но lazy IO это всегда шаткая тема

Vladimir
21.11.2016
21:47:32
вот я щас так примерно и начал делать

Alexander
21.11.2016
21:47:33
это если не включая мозг

Vladimir
21.11.2016
21:47:37
спасибо

У меня даже попроще получилось вроде

Alexander
21.11.2016
21:51:44
щас придумаю как включая мозг, как не все запустить я вижу, а вот как ещё и результат вытащить

Vladimir
21.11.2016
21:51:51
getAllEvents locale = getAllEvents' "" [1..] where getAllEvents' acc (x:xs) = do page <- getPage locale x case page of Just p -> getAllEvents' (acc ++ p) xs Nothing -> return acc

где getPage :: String -> Int -> IO (Maybe String)

вроде работает

Alexander
21.11.2016
21:54:56
loop (x:xs) = x >>= \case Nothing -> return x Just v -> fmap (v :) (loop xs) имх проще

и без жутких добавлений вконец списка по одному элементу через ++

Vladimir
21.11.2016
21:55:30
да, точно, в конец же медленно, я забыл

Спасибо!

Alexander
21.11.2016
22:01:51
а можно https://hackage.haskell.org/package/monad-loops-0.4.3/docs/Control-Monad-Loops.html и whileJust оттуда

..никогда почти не пользовался

ещё как-то можно через MaybeT и скорее всего Compose но мне не сообразить

Vladimir
21.11.2016
22:03:01
ох, трансформеры я пока не освоил, а вот про лупы спасибо, хотя каким-то читерством кажется :D

Alexander
21.11.2016
22:06:22
Примерно тоже самое что ты руками написал

Google
Alexander
21.11.2016
22:06:24
+-

Vladimir
21.11.2016
22:06:43
ну вообще да

Ruslan
22.11.2016
10:35:34
Как и где(название сайтов, ссылки и тд) лучше всего учиться программировать клиент-серверную архитектуру, понимание того, как все работает. Предполагается использовать wai как сервер, как фронт -- lucid(сначала с бутстрапом, а потом с react-flux)?

А еще интересно, чем wai отличается от scotty? Что реально удобнее?

Vladimir
24.11.2016
08:26:58
а WAI это как Rack в Ruby или как Ring в Clojure

интерфейс для веб сервера

Vladimir
24.11.2016
08:32:39
А это. Интерполяция строк так просто в хаскеле не получается?

Без темплейтов и квазиквотеров

Nikita
24.11.2016
09:29:25
вроде не

Alexander
24.11.2016
10:00:50
Почему бы и не передаешь Map String SomeClassName

Где SomeClassName это обертка для нужных операций экзестенциальная

Misha
24.11.2016
10:04:16
я тоже интересовался темой недавно, там не сильно все плохо, interpolate вполне себе нормальная бибилиотека, получается что-то типа let message = [i|Error saving snapshot to #{storeDir}: #{e} |] in ...

минимум синтаксиса

в сравнении скажем, со скалой или, простихоспади, перлом

в смысле в них это сделано совсем минимально

ну а тут приходится квадратную скобочку приписать впереди

Alexander
24.11.2016
10:26:14
Misha
24.11.2016
10:27:19
а как тут Map поможет?

Google
Vladimir
24.11.2016
10:29:21
ну про квазиквотеры я в yesod читал, в принципе терпимо

Тут уже поднимался вопрос, вроде, но я что-то пропустил. Как писать инстансы для не своих типов? Например, для (Double, Double)? Нужны FlexibleInstances, но тогда orphaned instance вылезает, ясен пень. На него можно забить?

ну, то есть я прочитал, почему на него не стоит забивать

но как "по уму" тогда сделать?

Alexander
24.11.2016
15:08:47
@MikhailTikhonov если хочешь дешево по синтаксису как в перлах, то делаешь так же как сделано в Text.Printf

когда просто текст, и к нему параметры, параметры или позиционно или мапом

причем либы я такие точно видел, но подробно не смотрел

Admin
ERROR: S client not available

Alexander
24.11.2016
15:10:48
в. воспользоваться reflection ?

но я бы выбирал из а или б

Misha
24.11.2016
15:11:18
"завернуть в newtype"

o!

не думал про такое, но да, очевидное решение

хотя и "неаккуратненько"

Vladimir
24.11.2016
15:31:06
я вот думал, только что-то пока не додумал)

Alexander
24.11.2016
15:49:22
"завернуть в newtype"
Это одно из основных назначений newtype :)

Misha
24.11.2016
23:55:49
а кто как парсит даты?

вот это https://hackage.haskell.org/package/time-1.7/docs/Data-Time-Format.html выглядит как кошмар какой-то, кидается исключениями и кажется лезет IO

Google
Misha
24.11.2016
23:57:12
мне из строки 20121123112233 сделать UTCTime

и это оказывается нетривиальная задача

Quet
24.11.2016
23:57:44
это хаскель же

Misha
24.11.2016
23:58:29
ну некоторые другие задачи решаются красиво

хотелось бы типа

Quet
24.11.2016
23:58:42
если б тебе какой гомофунктор надо было преобразовать

то да

а ты с какой-то датой тут

Misha
25.11.2016
00:00:30
да ладно

concurrency

ну и парсеры вообще

но парсеры дат почему-то говно

Quet
25.11.2016
00:06:03
а чем тебя не устраивает time этот?

в IO оно лезет ток если текущую дату получить (логично)

парсинг там есть

Misha
25.11.2016
00:06:34
он таймзону лезет получать в IO видимо

и он монструзный

и выкидывает exception

Quet
25.11.2016
00:06:54
ты же говоришь про UTCTime какая там таймзона

какой эксепшен?

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