Size: a a a

2021 June 29

к

кана in Haskell
потому что там санки с min копятся
источник

[

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

[

[BRM]White Rabbit in Haskell
т.е.
наивное-стрикт-тардис примерно одинаково, а ленивое - сосёт?
источник

к

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

[

[BRM]White Rabbit in Haskell
так, я что-то напутал, но сейчас понял
источник

к

кана in Haskell
ток у меня в бенче неправильное строгое (что ни на что не влияет правда)

должно быть таким, чтобы только минимальное значение было строгим

data X = X !Int [Int]
источник

[

[BRM]White Rabbit in Haskell
я думал, что тардис и ленивое это разные, а это одно
источник

[

[BRM]White Rabbit in Haskell
сейчас код отрыл
источник

к

кана in Haskell
тардис это отдельная тема, либа поверх этого

тут строгое решение все еще на основе лени работает, просто значение минимального вычисляется сразу, а не строится башенка задумок из min
источник

[

[BRM]White Rabbit in Haskell
ага, я понял
источник

к

кана in Haskell
и чет у меня не получается заменить рекорд с строгим полем на просто бэнг-паттерны
источник

к

кана in Haskell
вот так получилось, оно не сильно, но заметно медленее чем просто  data X = X !Int [Int]
источник

к

кана in Haskell
не могу понять, почему только bang-паттерн или только $! не работают, нужны оба
источник

к

кана in Haskell
вот тут конечно для незнакомого с хаскелем человека просто иероглифы какие-то
источник

[

[BRM]White Rabbit in Haskell
У тебя дист ленивый до сих пор
источник

[

[BRM]White Rabbit in Haskell
В скинутом тобой исходнике ![Int]
источник

к

кана in Haskell
Кажется на чат повесили слоу-мод, я уже думал что меня забанили
источник

A

Andrey in Haskell
нет
источник

A

Andrey in Haskell
посмотрел, слоумода нет
источник

L

Lierdakil in Haskell
у меня вроде работает с $!

mine :: [Int] -> [Int]
mine i = fst $ fix $ f i . snd
 where
 f [] y = ([], y)
 f [x] y = ([y], x)
 f (x:xs) y = case f xs y of
   (xs', y') -> (y:xs',) $! min x y'


правда помедленнее чем вариант с data X, но не в 3-6 раз.
источник