Alexander
скорее всего
Alexander
а не что-то, наоборот действующее
Alexander
мне казалось что хиломорфизм это грубо говоря unstream.stream
Alexander
а хотя оно и есть
Alexander
только типы слева и справа разные
Зигохистоморфный
ну есть еще метаморфизм это обратный к хиломорфизму
Alexander
в общем какая разница если код писать : ]
Alexander
если библиотеку с красивым интерфейсом, то да
Зигохистоморфный
)) ну hylo = cata . ana а meta = ana . cata
Alexander
и как мне это поможет
Alexander
если я с самого начала сказал, что мне нужно unstreamM (...next..)?
Alexander
ещё до того как начал api смотреть
Alexander
вопрос же в этих самых ana и cata которые надо написать
Alexander
во в Vector.Stream все превратилось в 3 строки
Alexander
о блин, а дальше там повозиться надо будет
Alexander
там нужно чтобы это PrimMonad было
Alexander
оно конечно уже выразимо для любой монадки, но все же как-то жестоко
Зигохистоморфный
можно глянуть как тут сделано https://hackage.haskell.org/package/streaming-utils-0.1.4.7/docs/src/Streaming-Pipes.html
Зигохистоморфный
из Stream -> Pipe
Alexander
это то не проблема
Alexander
streamToVectorStream
:: Monad m
=> Stream.Stream (Stream.Of a) m ()
-> V.Stream m a
streamToVectorStream = V.unfoldrM go where
go str = do
eresult <- Stream.next str
case eresult of
Left () -> pure Nothing
Right (a,s') -> pure $ Just (a, s')
Alexander
а вот Vector.Stream -> Vector пока вызвыает вопросы
Alexander
в общем случае
Alexander
vectorStreamToVector :: (GM.MVector v a)
=> V.Stream IO a
-> m (v (PrimState m) a)
vectorStreamToVector s = VMut.munstream bndl where
bndl = Bundle.fromStream s 32
mvectorToVector :: (V.Vector v a)
=> G.Mutable v (PrimState m) a -> m (v a)
mvectorToVector = G.unsafeFreeze
Alexander
собралось
Alexander
блин предыдущая версия собралась ну ладно
Alexander
non-injectivity FTW
Alexander
все наспамил можно и спать идти
Alexander
\o/
Зигохистоморфный
Alexander
поверю что раз скомилялось то работает, а то добавлять PrimMonad инстанс уже не хочется
adam
Почему это должно быть на hackage
hackage.haskell.org/package/acme-io-0.1.0.1/docs/src/System-IO-Unsafe-Really-IMeanIt.html
hackage.haskell.org/package/acme-microwave
hackage.haskell.org/package/acme-timemachine
Andrei
Лол.
Kirill
https://hackage.haskell.org/package/acme-flipping-tables-0/docs/Acme-Error.html
Kirill
ещё можно вспомнить
Donat
https://hackage.haskell.org/package/acme-missiles-0.3/docs/src/Acme-Missiles.html
Alexander
в acme-everything уже все есть зато
Danila Matveev
нужно 2.0
такое ощущение, что stack сам тоже пытается парсить конфиг проекта и падает на этом
а cabal build норм (за исключением того что уже hspec не может скачать)
Alexander
раньше стек зависел от какого-то кабала, но мне казалось что какое-то время назад Снойман твитил что портировали на 2.0
Cheese
конечно, stack читает кабалфайл с помощью библиотеки Cabal
Cheese
и текущий стабильный stack собран с Cabal < 2
Danila Matveev
ясно, спасибо
Cheese
Alexander
ясно я не следил..
Alexander
я на работе использую стек, когда сам играюсь обычно последний кабал
Alexander
он клёвый, не считая убогого интерфейса и то что hspec-discover (который я не использую) поломали
Cheese
хотя в релизе stack 1.5.1 написано, что они как-то научились ограниченно парсить кабалфайлы 2 версии и не падать, но настоящей поддержки нет
Alexander
хм.. может они не Cabal-лом парсят?
Cheese
было бы очень странно
Cheese
наверное, ленивости где-то добавили
Alexander
хм.. в кабале так и не запилили common fields
Alexander
в каком-то виде похоже :/
Anonymous
какая интуиция у профункторов?
Сергей
представляю его как обычную ->
можно помапить вход и выход
Сергей
https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/profunctors
Anonymous
ну с -> тривиальный пример
Alexander
Tagged
Alexander
это для всего отличный пример
Anonymous
Ааа я понял
Anonymous
это бифунктор контравариантный по первому аргументу
Nikolai
Anonymous
просто книга поменяла буквы и эта интуитивность потерялась
Зигохистоморфный
Nikolai
data Tagged a b = Tagged b
Denis
я к Tagged пристрастился на GHC 8
Denis
помогает DSLи фигачить на TypeApplications
Зигохистоморфный
Denis
https://github.com/typeable/schematic/blob/master/src/Data/Schematic/DSL.hs#L21 вот, например, но я документацию не написал еще, поэтому развлекайтесь
Denis
в общем иногда для вывода типов нужен носитель фантомных типов, а с учетом TypeApplications очень хорошо подходит Tagged, т.к. у него первый аргумент фантомный и можно через собаку передавать
Denis
https://github.com/typeable/schematic/blob/master/test/SchemaSpec.hs#L20 применение выглядит вот так
Nikolai
типа вместо Proxy a -> b -> ...
можно писать Tagged a b -> ...
Cheese
кто-то продвигал синоним (//) для Tagged, чтобы, например,
data Size = Size
{ height :: Double // "height"
, width :: Double // "width"
}
Anonymous
Привет всем!
Есть те, кто умеет работать с андроид эмуляторами более-менее умело? (блюстак, нокс, обычный от гугла, генимотион и т.д.).
Ищу уже долгое время пряморукого фрилансера, который смог бы сделать сендер для whatsapp и messenger (бюджет 600 $ и 750 $ соответственно).
Если вдруг кто-то с такими золотыми руками есть, чирканите в личку.
Denis
Denis
чтобы можно было @"bla" .= "foo"
Denis
ну или если это ambiguous для разбора кода, то можно "bla"@ .= "foo
Cheese
Denis
определенно нет
Denis
это может быть и @Foo .= foo