Size: a a a

2021 June 28

[

[BRM]White Rabbit in Haskell
я почти разобрался
источник

к

кана in Haskell
дык а функцию замены элементов в списке на минимальный написал?
источник

[

[BRM]White Rabbit in Haskell
пока похоже на гадание с бубном, но моя нейросеть в черепушке уже почти натренировалась выдавать правильные ответы
источник

к

кана in Haskell
это самое интересное
источник

K

Kir in Haskell
Разбираться удобно подстановками -
fix f = x
fix f = f x
fix f = f (f x)
...
источник

[

[BRM]White Rabbit in Haskell
неа
источник

к

кана in Haskell
очень советую
источник

[

[BRM]White Rabbit in Haskell
допустим, функция должна иметь тип [Int] -> [Int]. Ну или с Ord a если в общем случае
источник

к

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

[

[BRM]White Rabbit in Haskell
значит, нам надо функцию ([Int] -> [Int]) -> [Int] -> [Int]
источник

[

[BRM]White Rabbit in Haskell
и сунуть её в fix
источник

к

кана in Haskell
да не, задача не подразумевает использование fix
источник

[

[BRM]White Rabbit in Haskell
а
источник

к

кана in Haskell
и внутри функция может быть определена через хелперы всякие
источник

[

[BRM]White Rabbit in Haskell
как вообще можно однопроходно заменить все элементы на минимальный?
источник

K

Kir in Haskell
Либо "однопроходно", либо там такая чёрная магия, что ты никогда не воспользуешься ей в проде
источник

[

[BRM]White Rabbit in Haskell
предлагаю сворачивать фолдом, чтоб получить одновременно length и minimum, а после сунуть в replicate
источник

[

[BRM]White Rabbit in Haskell
replicate из-за ленивости вернёт не лист, а итератор листа, т.е. фактически значение у нас есть, но ещё нет
источник

K

Kir in Haskell
Мне только тупое, и по факту, двухпроходное решение на ум приходит:
replace xs = fmap (const x) xs
 where
   x = minimum xs
источник

K

Kir in Haskell
Ну так тут DList строится, распаковка его в обычный лист - это ещё один проход
источник