@haskellru

Страница 156 из 1551
Ilya
21.12.2016
12:14:13
а у меня нет

Anatolii
21.12.2016
12:14:20
точно

f <$> a <*> b

Ilya
21.12.2016
12:14:28
у меня возвращает обёрнутое значение

Google
Anatolii
21.12.2016
12:14:30
а так

?

Ilya
21.12.2016
12:14:48
Prelude> let g f a b = f <$> a <*> b Prelude> :t g g :: Applicative f => (a1 -> a -> b) -> f a1 -> f a -> f b

не тот тип

b не обёрнуто

f a_ b_ f = do a <- a_ b <- b_ f a b не?
да, спасибо, по типам сходится

вот))

Anatolii
21.12.2016
12:42:42
:) лучше так не писать:)

Ilya
21.12.2016
12:42:52
я понимаю

Alexander
21.12.2016
13:51:51
liftA2 и join выше уже предложили?

Anatolii
21.12.2016
13:53:55
нет :(

Ilya
21.12.2016
14:04:47
liftA2 и join выше уже предложили?
ещё не знал про join, большое спасибо:) подходит идеально

Google
Alexander
21.12.2016
16:12:56
Кто нить знает хорошие ресурсы по констрейнт солверам

Kit
22.12.2016
08:22:58
Anatolii
22.12.2016
08:23:48
Оно не очень понятно и читаемо, вот do или join будет всем понятно

Ruslan
23.12.2016
08:20:54
Привет всем.

Кто-нибудь знает, как сделать toJson для типа data A = A {b :: Text, c :: [(Text,Text)]}

Alexander
23.12.2016
08:32:47
data A = ... deriving Generic Instance ToJSON A

Ну или код на TH, там там даже generic не надо

Ruslan
23.12.2016
08:39:19
deriving Generic — все сделан. я не понимаю, как сделать кастомный вывод. хотелось бы, чтобы json выглядел так {"b" : b, "c" : [{"c11":"c12"}, {"c21":"c22"},...]}

пока что реализовано так instance ToJSON A where toJSON (A b c) = object [ "b" .= b , "c" .= ((\c1 c2 -> object[ c1 .= c2 ]) <$> c) ]

но это неверно

средствами feson вывод немного не тот, т.е. он тапл выводит как список из элементов через запятую

aeson

я сейчас проверю, но, возможно, надо просто c1 c2 обернуть в тапл

если кому интересно, то все так и делается)

а какие принципы для parseJSON? а то я ручками никогда не делал такие вещи(

Судзумия
23.12.2016
08:56:04
Интересный у вас диалог

Mansur
23.12.2016
08:57:09
[ "b" .= b, "c" .= toJSON $ Map.fromList c ] не сработает?

Anatolii
23.12.2016
08:57:09
вот тут статейка хорошая по aeson

https://artyom.me/aeson

почитай, может найдешь что для сеья

Google
Ruslan
23.12.2016
08:57:42
я toJSON написал уже, какой должен быть

хорошо, спасибо)

теперь parseJSON делаю

если кто-то знает, как сделать parseJSON для

{"c" : [{"c11":"c12"}, {"c21":"c22"},...]}

Anatolii
23.12.2016
09:06:07
Я думаю тебе в гиттере быстрее ответят

Ruslan
23.12.2016
09:06:08
я буду очень благодарен, т.к. проблема в том, что в простом случае надо сделать примерно так:

Anatolii
23.12.2016
09:06:15
Там больше опытных людей сидит

Ruslan
23.12.2016
09:07:08
o .: "c" , а как уже сюда передать список объектов я в душе не знаю

что за гиттер?

Mansur
23.12.2016
09:07:50
(f :: Value -> [(Text, Text)]) <$> o .: "c"

и написать f, которая принимает произвольный Value и преобразует в то, что надо

Anatolii
23.12.2016
09:08:36
https://gitter.im/ruHaskell/home

пиши или в forall или в novice

Ruslan
23.12.2016
09:09:04
хорошо, спасибо)

Mansur
23.12.2016
09:10:41
да, получается f = map Data.Map.toList вроде бы

Anatolii
23.12.2016
09:10:48
там много опытных людей, и они наверняка помогут

Ruslan
23.12.2016
09:11:26
за помощь всем большое спасибо!

Denis
23.12.2016
12:33:13
https://telegram.me/blockchain_news

Alex
25.12.2016
00:31:39
http://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf

Google
Alex
26.12.2016
16:27:24
http://www.stephendiehl.com/posts/haskell_2017.html

eugene
26.12.2016
16:41:38
Видео докладов появились https://www.youtube.com/channel/UCmiGqOz-jojsWUVXLZJ8mCw/videos

Admin
ERROR: S client not available

Alex
28.12.2016
12:47:54
http://www.haskus.org/system/

Eugene
30.12.2016
19:54:17
всем привет. Из присутствующих кто-то знает Scheme язык?

Boris
30.12.2016
21:26:36
У меня вопрос есть. Есть значение va типа Maybe a, есть функция f :: a -> b. Есть булевая переменная isSmth. Если в va лежит Nothing, но предикат isSmth выполнен нужно вернуть Just B, если isSmth невыполнен, то просто можно применить fmap. Как это лучше реализовать?

я написал на guard ах но мне кажется как то криво это выглядит - можно так - но как лучше сделать есть cnfSat == True а find вернул Nothing чтобы возвращалось что-то типа Just NoCell fmap (TTTCellType . stepType) $ find (\stp -> position stp == tp) $ steps tttPlay

Kit
30.12.2016
21:45:02
А можно типы всех функций?

Boris
30.12.2016
21:47:09
сейчас

Boris
30.12.2016
21:48:41
data TTTStepType = Krestig | Nolek deriving (Show, Eq) data TTTCellType = TTTCellType TTTStepType | EmptyCell deriving (Show, Eq) data TTTPosition = TTTPosition Int Int deriving (Show, Eq) calcPos :: TTTPlay -> TTTPosition -> Maybe TTTCellType calcPos tttPlay tp = fmap (TTTCellType . stepType) $ find (\stp -> position stp == tp) $ steps tttPlay

data TTTPlay = TTTPlay { config :: TTTConfig, steps :: [TTTStep] } deriving Show

Kit
30.12.2016
22:02:48
Если вы хотите pip'oм сделать, то не получится. Мне кажется gaurd'ы здесь самое то.

Boris
30.12.2016
22:11:14
я вот так сделал

calcPos :: TTTPlay -> TTTPosition -> Maybe TTTCellType calcPos tttPlay tp = mdfFun $ fmap (TTTCellType . stepType) $ find (\stp -> position stp == tp) $ steps tttPlay where cnfSat = isConfigPositionSat (config tttPlay) tp mdfFun Nothing | cnfSat = Just EmptyCell | otherwise = Nothing mdfFun x = x

Boris
30.12.2016
22:15:02
Google
Kit
30.12.2016
22:17:17
ну я так понимаю вы хотели написать функцию типа mb :: Bool -> Maybe a -> Maybe b так?

Boris
30.12.2016
22:17:30
Да!

Kit
30.12.2016
22:19:53
вам все равно придется guard'ы прописывать для случая Nothing mf: Maybe a -> Maybe b mb True va = mf va mb False _ = Nothing
ну так вот рецепт, только надо mf прописать правильно, тоже кстати на guard'ах mf Just a = Just (f a) mf Nothing = Just NoCell если я правильно понял при true и nothing вы хотите выводить NoCell

Boris
30.12.2016
22:20:09
maybe :: b -> (a -> b) -> Maybe a -> b

нашел кстати

Kit
30.12.2016
22:23:01
даже если включить в игру твою функцию f у тебя в игре будет 3 переменных, а в сигнатуре этой функции maybe только 2

а что у тебя будет если False и va = Nothing?

Boris
30.12.2016
23:52:26
сделал так -

calcPos :: TTTPlay -> TTTPosition -> Maybe TTTCellType calcPos tttPlay tp = maybe val (Just . TTTCellType . stepType) step where cnfSat = isConfigPositionSat (config tttPlay) tp val = if cnfSat then Just EmptyCell else Nothing step = find (\stp -> position stp == tp) $ steps tttPlay

Не подскажете, где в Stack указать свои данные, чтобы он их в cabal при stack new прописывал? - author: Author name here maintainer: example@example.com copyright: 2016 Author name here category: Web

Vladimir
04.01.2017
14:43:39
Вроде hpack для этого можно использовать

Alexander
04.01.2017
14:52:48
ну для этого hpack использовать совсем не серьезно

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