= [Double]
у курта есть задание
Если бы ваши типы Events и Probs были самостоятель
ными типами данных, а не просто синонимами типов, вы могли бы сде
лать их экземплярами классов типов Semigroup и Monoid с операция
ми combineEvents и combineProbs в качестве <> соответственно. Перепи
шите эти типы данных и реализуйте экземпляры Semigroup и Monoid .
До какой степени надо заменить тип, на самостоятельный ? например так
data Events = [Event]
type Event = String
Или что подразумевается ?
подразумевается data Events = Events [String] например
Стикер
а потом задача выковырять от туда [String] или что ?
это не задача. просто разворачивай обёртку. например, data Events = MkEvents [String] printEvents :: Events -> IO () printEvents (MkEvents strings) = for_ strings putStrLn
то есть это просто упражнение на разворачивание обертки типа
нет, упражнение на работу с типами
ну вот я поправил все, все функции работают включая mconcat
Обсуждают сегодня