Ilya
Сообщество Haskell славится радушием и терпимостью к начинающим (с)
Alexander
@Masteroid а где тут к начинающим плохо относятся?
Alexander
или не объясняют что-то, или издеваются?
Alexander
или это серьёзно было, и у меня сарказм детектор сломался
Ilya
это цитата из книги Холомьева:) просто запомнилась. и я вполне серьезно
Евгений
А чем тем бе haskell learn не нравится?
Alexander
тем же чем и в гиттере
Alexander
нету смысла разделять канал на части
Alexander
большинство ontopic тем генерируются вопросами начинающих
Alexander
приходится сидеть в большем числе каналов
Alexander
в том канале, где народу больше, больше вероятность получить помощь
Alexander
в гиттере правда learning превратилось в лабораторию хистоморфизмов
Alexander
(не знаю как тут)
Евгений
Мне нравится разделение каналов, но я бы пилил наоборот: haskell_flood и основной чат
Евгений
Тут в learn запрещены сложные темы вообще
Евгений
И оффтопик. Ты же не запретишь оффтопик тут? :(
Евгений
Кстати об оффтопике, куда клапауций пропал?
Alexander
на огород уехал?
Alexander
(не знаю)
Alexander
оффтопик убирается онтопиком
Ilya
тогда бы не было такого
не надо стесняться (с)
Alexander
потому, что блин ПОДНИМИТЕ СВОЮ ЗАДНИЦУ И ОТВЕТЬТЕ ТУТ!
Alexander
или тут вообще вопросов не было?
Ilya
я всегда врываюсь во флуд со своими вопросами, и мне всегда отвечают
кана
тут вопрос был, но поему из-за флуда как раз таки тут шанс ответа ниже
Anatolii
тогда бы не было такого
это скрин моего сообщения - и я изначально вопрос тут задал, но тут было слишком много оффтопа, и я понял что первого мая мой вопрос затеряется
Евгений
*представил как клапауций сажает картошку и жалуется на несовершенство лопаты*
кана
я например этот чат читаю чанками, потому что уже знаю, что скорее всего тут флуд
Евгений
потому, что блин ПОДНИМИТЕ СВОЮ ЗАДНИЦУ И ОТВЕТЬТЕ ТУТ!
Я вопросы не отвечаю, я их задаю. Правда и мне и тут норм отвечают
Alexander
ну я тут читаю почти все и стараюсь отвечать на все что вижу если не ответили
Anatolii
Спасибо всем кто мне ответил и помог:)
Евгений
Но тут всё-таки токсичнее: клапауций, кроули, я
Alexander
и почему-то большинство вопросов тут отвечено
Евгений
Признайся, ты с астинаксом поругался? :(
Alexander
нет
Alexander
я вроде достаточно стабильно ругаю идею отделять learning, ещё со времен гиттера
Alexander
причем с самого начала той движухи
Anatolii
@kana_sama спасибо за ответы, завтра буду пробовать
Anatolii
мне @qnikst помогал прямо в этом чате когда еще не было лернинг чатов!!!
Anatolii
но людей тут было сильно меньше и флуда тоже
Anatolii
и прямо сильно помогал
Alexander
Дорогие друзья, если вдруг у вас есть вопросы, но вы стесняетесь их задать, поскольку в канале флуд или оффтопик, то не стеняйтесь. На все вопросы тут с радостью ответят в этом канале (может с некоторой задержкой).
Alexander
moderator supapowers!
тот
подкиньте ссылок на видео, текст - чему-то полезному по языку (если под рукой)
Alexander
https://skillsmatter.com/conferences/7276-haskell-exchange-2016#skillscasts
Alexander
и все другие годы (год выбран случайно)
Anton
Раз пошло такое дело, то и я вопрос задам 🙂 Рецензировал я тут давеча Ready, Set, Verify! — Applying hs-to-coq to real-world Haskell code https://arxiv.org/pdf/1803.06960.pdf И там есть такой сниппет из библиотеки containers, которую авторы верифицировали: data Set a = Bin {-# UNPACK #-} !Size !a !(Set a) !(Set a) | Tip type Size = Int Мой вопрос такой: зачем там UNPACK, разве type не создает просто синоним? (это же не `data`)
Ilya
можно как-нибудь скормить кайнд * -> * туда, где требуется *? Какие-то расширения, forall, ... ? Или никак
Andrey
'просто синоним' вроде newtype. остальное забыл за неиспользованием, поэтому не скажу )
Anton
newtype же как раз не синоним (один конструктор с одним полем максимум)
Антон
Расскажи подробнее, в чём задача?
кана
лучше забыть про такую терминологию имхо или универсумы, или type-in-type в обоих случаях мы говорим про типы, просто типы термов или типы других типов
кана
мало того, сорта как раз одинаковые
кана
BOX
Ilya
Расскажи подробнее, в чём задача?
>Расскажи подробнее, в чём задача? ничего практического, просто развлекаюсь. Прочитал третий ответ https://stackoverflow.com/questions/3870088/a-monad-is-just-a-monoid-in-the-category-of-endofunctors-whats-the-problem Там всё прекрасно, но итоговый инстанс Моноида так и не написан. Я понимаю, что его нельзя выписать из-за разных кайндов. Но вдруг можно с помощью какой-то магии всё же увидеть mempty = Identity; mappend = Compose или что-то в этом духе
Alexander
чтобы не было лишнего индирекшена
Alexander
в общем техническая деталь
Anton
а разве для ghc это не то же самое, что и data Set a = Bin !Int !a !(Set a) !(Set a) | Tip
Anton
?
Ilya
для этого нужен полиморфизм по универсумам, в хаскеле такого нет
То есть вот это "Монада над категорией K — это моноид в моноидальной категории эндофункторов End(K)" никак-никак нельзя преобразовать в Haskell-код вида? instance Monad m => Monoid (??) where mempty = undefined mappend = undefined
кана
coq/agda/lean, возможно и в идрисе, чет я не очень понимаю что там с универсумами
кана
Semigroup (Type -> Type) where (<+>) f g = \T => f (g T) Monoid (Type -> Type) where neutral = \T => T join_maybe : (Maybe <+> Maybe) x -> Maybe x join_maybe (Just (Just x)) = Just x join_maybe _ = Nothing
кана
идрис
Ilya
newtype - ленивый по конструктору data :)
A64m
а разве для ghc это не то же самое, что и data Set a = Bin !Int !a !(Set a) !(Set a) | Tip
раньше ghc не делал анпак строгих полей размером со слово
A64m
сейчас-то он и без аннотации анпак !Int сделает
A64m
не знаю, какими версиями ghc они контейнеры хотят компилировать
Alexander
а разве для ghc это не то же самое, что и data Set a = Bin !Int !a !(Set a) !(Set a) | Tip
начиная с 7.10 - да, но вообще строгость поля говорит, что оно будет вычислено до WHNF когда конструктор вычислен
Alexander
про memory layout не говорит
Alexander
потом появилось -funbox-strict-foelds