Λrtem
Kirill
(удалён ненужный спам, сорри)
Alexander
а у нас поверх криптонита есть какие-нибудь утилиты для случайных вещей
Alexander
например мне нужно сделать случайный вектор из значений из списка p
Alexander
и есть Entropy Pool
Alexander
я могу как-то объединить это и получить результат?
Alexander
почему у Data.Text нету чего-то типа iterateN для создания
Alexander
только unfoldr в котором аккумулятор надо таскать руками
A64m
Alexander
не надо video message..
Ilya
Подскажите плиз у меня есть Maybe a и я хочу по ней сделать Fold. То есть отдать две функции Nothing -> t и a -> t и получить на выходе t. Это по сути эквивалентно обыкновенному паттерн матчингу. Есть ли такая возможность?
Ilya
Вопрос вродеб дурацкий но чего то дефолтного я не нашел чтобы такое поведение описать
Big Bux Chungus
https://hackage.haskell.org/package/base-4.12.0.0/docs/Prelude.html#v:maybe
Cheese
в общем случае такая функция называется элиминатором
Aleksei (astynax)
А ещё есть такое название: case analysis
Aleksei (astynax)
maybe, either, bool - вот эти
Aleksei (astynax)
Nothing -> t - "слегка бесполезная" функция
Aleksei (astynax)
За исключением этого maybe, на которую выше ссылку дали, должна подойти
кана
Aleksei (astynax)
И я о том же
кана
Ilya
^ http://hackage.haskell.org/package/catamorphism-0.7.0.0
кана
ну на TH там есть несколько реализаций, а на генериках не нашел
A64m
ну для фолдов для любых типов есть дерайвинги из коробки
кана
f(S a, r) = [a]
f(a :*: b, r) = f(a) ++ f(b)
f(C ss, r) = [g(f(ss), r)]
f(a :+: b, r) = f(a) ++ f(b)
f(D cs, r) = g(f(cs), r)
g([], r) = r
g((x:xs), r) = x -> g(xs, r)
elim(a) = forall r. f(Rep(a), r)
вывод фолда из генерика вроде такой будет, попробую реализовать теперь
Ilya
кана
ну про maybe мне кажется он бы нашел и сам, надеюсь вопрос был обобщенный и потом специализирован перед отправкой сюда
A64m
кана
да, думаю да
Anonymous
@adudinov будет жить. Поприветствуем!
кана
ну тип я вывести смог, работать с генериками не так сложно как я думал ранее, если заранее расписать транформации
кана
а лол нет, нужно заменять рекурсию еще
Grigory
@kana_sama а как вскод удобно подсвечивает? // оффтоп
кана
это вопрос в том, удобно ли, или как сделать чтобы было удобно?
Grigory
это вопрос удобно ли и что сделать чтобы было удобно
кана
нет, неудобно, баги подсветки всплывают часто
кана
что сделать - не знаю, я просто отрубаю подсветку когда баги и пишу без нее
Anonymous
Grigory
понятно, жалко, спасибо
кана
собственно вот, осталось только генерацию самого элима написать (то есть самое основное)
Зигохистоморфный
Зигохистоморфный
и опять же https://github.com/oisdk/generic-church
кана
и это оба не то же
кана
обе имеют не ту сигнатуру, хоть вторая максимально близко
Зигохистоморфный
ну первое это я про женерик рекурсивные схемы
кана
data F f g = F { unF :: f (g (F f g)) }
f :: (Functor f, Functor g) => (f a -> a) -> (g a -> a) -> (F f g -> a)
f g h = g . fmap h . fmap (fmap (f g h)) . unF
g :: (Functor f, Functor g) => (f (g a) -> a) -> (F f g -> a)
g h = h . fmap (fmap (g h)) . unF
какой из этих двух элиминаторов правальный
Ilya
Второй правильный, на мой взгляд (смотрел только на типы)
Ilya
А первый можно выразить через второй. То есть у первого сигнатура более общая, но выразительность на самом деле точно такая же
Зигохистоморфный
Ilya
просто тип носителя контейнера не полиморфный
Зигохистоморфный
@kana_sama я думаю тебе также стоит обратить внимание на репрезентативный функтор
NC
A64m
там же асап будет для ферст ордер языка, при полнопрограммном анализе, т.е. асап для грина вполне подходит
A64m
другое дело, наколько проблемно хаскель компилировать в такой промежуточный язык
A64m
первая имплементация грина ни одной программы больше 1000 строк не собирала
A64m
да и jhc тоже успешным проектом не назовешь
Alexander
/stat@combot
Combot
combot.org/c/-1001043143583
Anonymous
Mago будет жить. Поприветствуем!
Cheese
давайте договоримся в математических и программистских статьях не писать рядом «bottom» и «(_|_)» (именно в скобках)
Андрей
Почему?
a66ath
Это жеппа
Андрей
Да вроде нет
Anonymous
⊥
⊥
U+22A5
https://en.m.wikipedia.org/wiki/List_of_logic_symbols
Kirill
(⊥) смотрится ещё лучше чем (_|_)
Timofey
$\bot$
Cheese
со скобками попа
Cheese
и «bottom» — задница
Alexander
для тех кто сразу не понял
Alexander
ещё предлагаю сразу к этому добавить, чтобы в руских постах и статьях и объяснениях не использовать слово "жопа"
A64m
тем временем комитетчики приняли пару фич
https://github.com/ghc-proposals/ghc-proposals/pull/54
A64m
и
https://github.com/ghc-proposals/ghc-proposals/pull/81
Alexander
твиттер рассказал
A64m
мой оптимистичный прогноз, что будет пара заметных фич, а именно Top-level kind signatures и Type applications in patterns
реалистический прогноз как раньше остается, пока диффы соотвествующие не появятся
https://gist.github.com/klapaucius/8fc2fbb48606e6dd9a9a095898e3fac4
Апач
кана
ну я пишу мелкую фигню в один файл, :r в репле пишется на автомате посли любого изменения, ошибки видятся быстро
Alexander
@chshersh summoner не собирается cabal-install-ом на ghc 8.2.2 и новом срезе