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
ясно, спасибо
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
просто книга поменяла буквы и эта интуитивность потерялась
Зигохистоморфный
Tagged
А что это такое?
Nikolai
data Tagged a b = Tagged b
Denis
я к Tagged пристрастился на GHC 8
Denis
помогает DSLи фигачить на TypeApplications
Зигохистоморфный
data Tagged a b = Tagged b
Это какой то флипнутый конст
Зигохистоморфный
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
чтобы можно было @"bla" .= "foo"
Denis
ну или если это ambiguous для разбора кода, то можно "bla"@ .= "foo
Cheese
чтобы можно было @"bla" .= "foo"
может, ты хочешь #bla .= "foo"?
Denis
определенно нет
Denis
это может быть и @Foo .= foo