Size: a a a

2020 December 06

к

кана in Haskell Start
Aleksei (astynax) Pirogov
А для intersection нельзя mempty
хм точно да, понятно теперь почему fold1
источник

AP

Aleksei (astynax) Pi... in Haskell Start
IC Rainbow
нет смысла заводить привычку думать каждый раз о том пустые тут или не пустые, если можно сразу предоставить пруф
В данном случае можно было сделать на NonEmpty. Но в общем случае пруфы делать на каждый чих для радифановых задачек вроде AdventOfCode я бы не стал, например.
источник

IR

IC Rainbow in Haskell Start
Aleksei (astynax) Pirogov
Потому что пересечение с пустым множеством даст пустое множество
а почему нельзя? ну пустое и пустое.
источник

A

Aragaer in Haskell Start
тебе надо пересечение всех множеств данного списка. Если ты сразу пересечешь с пустым, результат будет пустым
источник

к

кана in Haskell Start
ну тогда оно всегда будет пустое, не подходит под задачу
источник

IR

IC Rainbow in Haskell Start
Aleksei (astynax) Pirogov
В данном случае можно было сделать на NonEmpty. Но в общем случае пруфы делать на каждый чих для радифановых задачек вроде AdventOfCode я бы не стал, например.
с другой стороны - задачки типа Демидовичка Advent of Code как раз и хороши, чтобы поставить правильные привычки и не делать глупых ошибок в рабочем коде
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Кароч, для операции пересечения нет нейтрального элемента, если не считать надмножество всех значений
источник

к

кана in Haskell Start
в данном случае можно просто взять Set.fromList ['a'..'z']
источник

AP

Aleksei (astynax) Pi... in Haskell Start
IC Rainbow
с другой стороны - задачки типа Демидовичка Advent of Code как раз и хороши, чтобы поставить правильные привычки и не делать глупых ошибок в рабочем коде
Давай не нагнетай тут. Кому надо практиковать пруфы, тот пусть и практикует
источник

AP

Aleksei (astynax) Pi... in Haskell Start
А набегать и топить за корректность можете в общем чате
источник

к

кана in Haskell Start
и в принципе для всех Enum,Bounded с lazy set можно иметь моноид по пересечению
источник

IR

IC Rainbow in Haskell Start
Aleksei (astynax) Pirogov
Давай не нагнетай тут. Кому надо практиковать пруфы, тот пусть и практикует
ни в коем случае, просто периодически народ спрашивает чего бы такого поделать чтобы набить руку. вот  - адвенты всякие...
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Тогда ок :)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
кана
и в принципе для всех Enum,Bounded с lazy set можно иметь моноид по пересечению
Это может быть дорого
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Int64 тоже баундед и перечислимый
источник

к

кана in Haskell Start
поэтому и lazy set, я сейчас смотрю как раз на способы энкодить бесконечные сеты
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Можно на функциях сделать ещё. Но это отдельная задачка уже
источник

IR

IC Rainbow in Haskell Start
Aleksei (astynax) Pirogov
Кароч, для операции пересечения нет нейтрального элемента, если не считать надмножество всех значений
а для пересечения нескольких есть - пустой сет.
просто тут придётся поставить case на входные данные. А раз кейс есть, то уже и первый элемент для фолда считай есть.
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Для "пересечения нескольких" не нужен нейтральный элемент
источник

IR

IC Rainbow in Haskell Start
а в задачем там зуб дают, что вход непустой?
источник