Size: a a a

2020 November 20

AV

Alexander Vershilov in Haskell
a*b
источник

DB

Danil Berestov in Haskell
Alexander Vershilov
Ну могу и через честные gadt c доказательствами
отсортированность списка через гадт?
источник

AV

Alexander Vershilov in Haskell
да
источник

к

кана in Haskell
кана
тут нормальная форма будет что-то вроде

type Norm = [(Int, [String])]

элементы списка это слагаемые, Int это константа, [String] - переменные
нет, все верно было тут
источник

DB

Danil Berestov in Haskell
прям списка? как?
источник

к

кана in Haskell
вот и задачка подъехала
источник

DB

Danil Berestov in Haskell
я чо-то даже не представляю
источник

AV

Alexander Vershilov in Haskell
Сложно, но можно потаскать все словарики
источник

DB

Danil Berestov in Haskell
а што есть словарики?
источник

DB

Danil Berestov in Haskell
Это те Dict?
источник

AV

Alexander Vershilov in Haskell
Да, структуры таскающие с собой информацию об ограничениях
источник

AV

Alexander Vershilov in Haskell
Вообще инетерсно у меня data Q = Q [Z], так вот в Z сам по себе может иметь коэффициент 0, а в Q уже нет
источник

DB

Danil Berestov in Haskell
(я не понял)
источник

AV

Alexander Vershilov in Haskell
ааа, есть код вида:
go t [] = [t]
go t [x] = [f t x]
go t (x0:x1:xs) = f t x0 : go x1 xs
источник

AV

Alexander Vershilov in Haskell
Очевидно, что он возвращает непустой список, а как сделать так, чтобы тут адеватно возвращалось NonEmpty
источник

AV

Alexander Vershilov in Haskell
Но порядок желательно сохранять
источник

AV

Alexander Vershilov in Haskell
go t [] = (t:|[], [t])
 go t [a0] = (f t a0:|[], [f t a0])
 go t (a0:a1:as) =
   let tl = snd $ go a1 as
   in (f t a0 😐 tl, f t a0:tl)
источник

AV

Alexander Vershilov in Haskell
что получше есть?
источник

DB

Danil Berestov in Haskell
Alexander Vershilov
Очевидно, что он возвращает непустой список, а как сделать так, чтобы тут адеватно возвращалось NonEmpty
Да просто продложить другой функцией go?
источник

DB

Danil Berestov in Haskell
go'
источник