@haskellru

Страница 1420 из 1551
Alexander
21.08.2018
17:33:26
про ответ на вопрос пока думаю

Alexander
21.08.2018
17:33:30
много уровней одного типа это как раз важно, так как я newtype не делаю

может конечно надо делать

Alexander
21.08.2018
17:34:16
т.к. с mtl начинаются извращения типа mtl-classes, ether, layers которые в разной степени не работают

Google
Alexander
21.08.2018
17:34:38
а с mtl я смогу делать полиморфный state, кстати?

Alexander
21.08.2018
17:38:36
там матчинг во внешней монаде

видимо с разумный fail

Alexander
21.08.2018
17:38:51
там стэк MaybeT ReaderT StateT

kana
21.08.2018
17:38:57
а ок

Alexander
21.08.2018
17:39:33
в случай 2 матчинг внутри State

даже внутри чистого, т.к. там state

я бы просто использовал uncons

+ какую-то ещё магию делающую ответ разумным

просто тебе хочется фишек разных уровней

Alexander
21.08.2018
17:41:10
сделал lift2 get >>= (guard . not . null) >> lift2 (state $ head &&& tail) в итоге

Google
Alexander
21.08.2018
17:41:10
эффекты такое обещают

но не знаю сделают ли

Alexander
21.08.2018
17:42:00
магии чет много выходит

чтобы из maybe сделать maybeT

остановлюсь на варианте с гвардом наверно

Alexander
21.08.2018
17:43:12
если чувствуешь что много магии - пишешь самый тупой бойлерплейт

Alexander
21.08.2018
17:43:15
или может быть какую то стрелку чтобы state и get не смешивать, но имхо это ожидаемое

ну тупой это с do-нотацией

Alexander
21.08.2018
17:43:28
пьешь чай возвращаешься и смотришь нет ли очевидных упрощений

kana
21.08.2018
17:47:08
import Control.Monad.State import Control.Monad.Trans.Maybe uncons :: [a] -> Maybe (a, [a]) uncons (x:xs) = Just (x, xs) uncons [] = Nothing tryState :: (MonadPlus m, MonadState s m) => (s -> Maybe (a, s)) -> m a tryState f = do Just (result, state') <- gets f put state' pure result program :: MaybeT (State [Int]) Int program = tryState uncons main :: IO () main = do print $ flip runState [1, 2, 3] $ runMaybeT program print $ flip runState [] $ runMaybeT program ну общего решения не вижу

какой кстати нейминг можете посоветовать для таких функций?

Alexander
21.08.2018
17:53:14
вроде общепринятого нету

kana
21.08.2018
17:59:13
почему в lens у view ограничение на Lens' a a?

я давно увидел, но все забыл спрашивать, но в своей реализации делает спокойно: view :: Optic (->) (K a) s t a b -> (s -> a) view lens = getK . lens K а вот в lens это иногда мешало

что я упускаю? Сделано это для более крутых линз?

Artem
21.08.2018
18:05:40
Все доброго времени суток. Хочу узнать про фреймворки под GHCJS и прочие полезности. Кто каким опытом может поделится?

Imants
21.08.2018
18:15:59
легко могу ошибаться, но где-то читал, что вот эта самая рабочая либа: https://hackage.haskell.org/package/fay а, интересует именно GHCjs?

Imants
21.08.2018
18:17:29
я бы так смело не стал утверждать
читал. Не мой мотороллер ?

Google
Denis
21.08.2018
18:17:50
ну и miso

kana
21.08.2018
18:39:18
да фиг его знает, мне уже кажется я что-то путаю

но как с liftIO, который из любого MonadIO работает

Kirill
21.08.2018
18:48:32
Все доброго времени суток. Хочу узнать про фреймворки под GHCJS и прочие полезности. Кто каким опытом может поделится?
а он ещё окончательно не сдох? Теоретически reflex самый внятный был, ещё miso был, на прошлом fpconf даж доклад был

ой, блин, уже такое написано

Ilya
21.08.2018
19:30:29
но как с liftIO, который из любого MonadIO работает
Ну liftIO нужен, потому что в IO дофига что можно сделать, и это дофига в MonadIO не засунешь (как методы класса).

У остальных монад лифтинг сразу зашит в методы класса (MonadState, MonadReader...)

kana
21.08.2018
19:34:19
да-да, это я знаю

было у меня какое-то воспоминание, что lift как-то сам тоже ищет

и по моему сейчас это реально написать даже

Ilya
21.08.2018
19:38:45


Ilya
21.08.2018
19:39:02
Как-то хугл нездорово историю браузера засирает

Там фича, что по мере набора результаты показываются сразу, но неужели в 2018 это должно работать так

Alexander
21.08.2018
19:41:40
в мтл лифт в общем то не нужен

Terminator
21.08.2018
19:47:41
@dkltd будет жить. Поприветствуем!

Admin
ERROR: S client not available

Index
21.08.2018
19:48:18
значит можно нормально сделать

Google
Index
21.08.2018
19:48:21
просто кто-то не осилил

(или в Google так же?)

kana
21.08.2018
19:52:03
в Google-то не так
а в гугл отказались от этой фичи

Антон
21.08.2018
19:59:17
Ох

Alexander
21.08.2018
20:15:13
а как там у нас флаги линкеру добавлялись в кабале?

-optl в ghc-options?

Andrey
21.08.2018
20:22:02
вроде да

Alexander
21.08.2018
21:57:25
уже на 2 поста тем набралось :/

Alexander
22.08.2018
03:58:22
а есть какой-нибудь скрипт, чтобы пару дней поработал и выдал мне ограничения на зависимости при которых спеки проходят?

предполагая что если они проходят в A и в B то пройдут в любом A < C < B

Aleksey
22.08.2018
04:28:02
Вот да, какой ещё lift в mtl? Там без лифта всё работает. А lift, это MonadTrans из transformers

"Transformers, robots in disguise" (простите)

Imants
22.08.2018
06:42:37
Alexander
22.08.2018
06:43:50
мне кажется это немного не то

особенно учитывая что у ней CLI нет

Alexander
22.08.2018
07:07:27
я не видел работающей версии

вообще неплохо бы вокруг хакаджа такой сделать

Terminator
22.08.2018
07:17:36
@maximkorolev будет жить. Поприветствуем!

Vasily
22.08.2018
07:45:26
Там где комбинаторы строят парсер и принтер одновременно.
Не то чтобы сильно новое, но вдруг пригодится http://www.mathematik.uni-marburg.de/~rendel/rendel10invertible.pdf http://hackage.haskell.org/package/partial-isomorphisms http://hackage.haskell.org/package/invertible-syntax

Alex
22.08.2018
08:02:55
Джентельмены, я сейчас играюсь с сервантом, у меня есть вот такая функция searchBook :: Monad m => Maybe Text -> m (Search Book) Как мне протестить эту функцию в GHCi? Я пишу searchBook (Just $ T.pack "the") , но мне возвращается как я понимаю thunk и я не вижу результата. Если я где-то неправ поправьте меня пожалуйста и скажите как увидеть результат

Google
Ilya
22.08.2018
08:10:43
searchBook (Just $ T.pack "the") :: IO (Search Book) ?

Можно Identity вместо IO, но его нужно импортировать

Terminator
22.08.2018
08:15:41
@fpoop будет жить. Поприветствуем!

Alex
22.08.2018
08:17:48
searchBook (Just $ T.pack "the") :: IO (Search Book) ?
Все равно GHCi не делает никакого вывода

Ilya
22.08.2018
08:25:52
хм

Alex
22.08.2018
08:26:23
Я разобрался!

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