Ruslan
хорошо, спасибо)
Ruslan
теперь parseJSON делаю
Ruslan
если кто-то знает, как сделать parseJSON для
Ruslan
{"c" : [{"c11":"c12"}, {"c21":"c22"},...]}
Anatolii
Я думаю тебе в гиттере быстрее ответят
Ruslan
я буду очень благодарен, т.к. проблема в том, что в простом случае надо сделать примерно так:
Anatolii
Там больше опытных людей сидит
Ruslan
o .: "c" , а как уже сюда передать список объектов я в душе не знаю
Ruslan
что за гиттер?
Mansur
(f :: Value -> [(Text, Text)]) <$> o .: "c"
Mansur
и написать f, которая принимает произвольный Value и преобразует в то, что надо
Anatolii
https://gitter.im/ruHaskell/home
Anatolii
пиши или в forall или в novice
Ruslan
хорошо, спасибо)
Mansur
да, получается f = map Data.Map.toList вроде бы
Anatolii
там много опытных людей, и они наверняка помогут
Ruslan
за помощь всем большое спасибо!
Anonymous
https://telegram.me/blockchain_news
ㅤ
http://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf
ㅤ
http://www.stephendiehl.com/posts/haskell_2017.html
Anonymous
Видео докладов появились https://www.youtube.com/channel/UCmiGqOz-jojsWUVXLZJ8mCw/videos
ㅤ
http://www.haskus.org/system/
Eugène Zlatko
всем привет. Из присутствующих кто-то знает Scheme язык?
Boris
У меня вопрос есть. Есть значение va типа Maybe a, есть функция f :: a -> b. Есть булевая переменная isSmth. Если в va лежит Nothing, но предикат isSmth выполнен нужно вернуть Just B, если isSmth невыполнен, то просто можно применить fmap.
Как это лучше реализовать?
Boris
я написал на guard ах но мне кажется как то криво это выглядит -
можно так - но как лучше сделать есть cnfSat == True а find вернул Nothing чтобы возвращалось что-то типа Just NoCell
fmap (TTTCellType . stepType) $ find (\stp -> position stp == tp) $ steps tttPlay
Нурлан
А можно типы всех функций?
Boris
сейчас
Нурлан
Нурлан
В случае если Nothing
Boris
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
Boris
data TTTPlay = TTTPlay {
config :: TTTConfig,
steps :: [TTTStep]
} deriving Show
Нурлан
Если вы хотите pip'oм сделать, то не получится. Мне кажется gaurd'ы здесь самое то.
Нурлан
Boris
я вот так сделал
Boris
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
Нурлан
Нурлан
ну я так понимаю вы хотели написать функцию типа
mb :: Bool -> Maybe a -> Maybe b
так?
Boris
Да!
Boris
maybe :: b -> (a -> b) -> Maybe a -> b
Boris
нашел кстати
Нурлан
даже если включить в игру твою функцию f у тебя в игре будет 3 переменных, а в сигнатуре этой функции maybe только 2
Нурлан
а что у тебя будет если False и va = Nothing?
Boris
сделал так -
Boris
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
Boris
Не подскажете, где в Stack указать свои данные, чтобы он их в cabal при stack new прописывал? - author: Author name here
maintainer: example@example.com
copyright: 2016 Author name here
category: Web
Vladimir
Вроде hpack для этого можно использовать
Alexander
ну для этого hpack использовать совсем не серьезно
Alexander
В стеке в global config да и в кабале должно быть можно default поставить, у меня при cabal init предлагает правильный email, откуда берет я не задумывался
Нурлан
Слышал что на hackage можно искать функцию по сигнатуре, это действительно так?
igo
да
Нурлан
igo
https://www.haskell.org/hoogle/?hoogle=[a]%20->%20a
Нурлан
igo
надо её скопипастить, или заменить %20 на символы +
igo
https://www.haskell.org/hoogle/?hoogle
igo
пиши тип (функции head), например, и он предложит варианты
Нурлан
спасибо!
Нурлан
оказывается safari отказывается открывать haskell.org
Нурлан
говорит что соединение не безопасное
igo
не знаю, зачем в 2к17 использовать сафари. это уже как IE считается.
Нурлан
Нурлан
igo
а ты в какой стране сейчас? может, кто подмешивает в траффик чего-нибудь?
igo
но вообще можешь просто нажать Advanced -> всё равно продолжить.
Нурлан
в россии
Нурлан
браузеры даже не предлагают advanced
Donat
Looks fine
https://www.ssllabs.com/ssltest/analyze.html?d=www.haskell.org&s=162.242.239.16
Нурлан
Donat
Все детали SSL сертификата
Donat
Внизу даже поддержка в разных браузерах показана
ㅤ
https://haskellweekly.news/issues/36.html
igo
Кто-нибудь использует attoparsec? Подскажите, как заставить парсер выкидывать ошибку, если вдруг не удалось прочитать токен?
parseOnly (myParse <* endOfInput) text
Даёт мне Left "endOfInput", а мне бы хотелось что-то типа сообщения, что ожидалась запятая, а на вход подана точка.
Anatolii
я не пользовался attoparsec
Anatolii
но у просто parsec
Anatolii
сообщения поинформативнее
Anatolii
может с него начать?