↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы
sum [1/20000, 1/19999..1/1] Я пытался понять, почему это не работает, и сломал себе голову (почти буквально). У sum правый фолд, что ли?
Рекомендовали: @voker57
#F5I2QI / @komar / 3673 дня назад

@plhk Да, ты тупой. Лист не бесконечный. Да даже если и бесконечный — жрать память эта поебень не должна, а только зависнуть.
#F5I2QI/X8Y / @komar --> #F5I2QI/51L / 3673 дня назад
@komar схуяли не должна? ты код смотрел?
#F5I2QI/C1H / @plhk --> #F5I2QI/X8Y / 3673 дня назад
@plhk Съеби уже.
#F5I2QI/YT7 / @komar --> #F5I2QI/C1H / 3673 дня назад
@komar сам съеби
#F5I2QI/LMX / @plhk --> #F5I2QI/YT7 / 3673 дня назад
@plhk Но ведь это мой тред!
#F5I2QI/AED / @komar --> #F5I2QI/LMX / 3673 дня назад
Проблема в ghci; если скомпилировать, то работает.
#F5I2QI/4PX / @fix / 3673 дня назад
@fix попизди мне тут
#F5I2QI/CHO / @voker57 --> #F5I2QI/4PX / 3673 дня назад
@fix сука
#F5I2QI/Z5V / @plhk --> #F5I2QI/4PX / 3673 дня назад
Проблема, как выяснилось, в том, что foldl держит в памяти невычисленным весь список пока не дойдет до его конца, оптимизируя для скорости, и жрет память пока она не кончится, при этом тормозя. В случае с таким большим списком следует использовать оптимизирующий для памяти foldl'.
#F5I2QI/12E / @voker57 / 3673 дня назад
@voker57 Но ведь действительно так. В смысле, использовать sum, а не foldl.
#F5I2QI/GFR / @komar --> #F5I2QI/CHO / 3673 дня назад
@voker57 умвр
#F5I2QI/PBS / @fix --> #F5I2QI/CHO / 3673 дня назад
@komar у вас памяти просто дохуя. У меня падает.
#F5I2QI/P3M / @voker57 --> #F5I2QI/GFR / 3673 дня назад
@voker57 Да я не пробовал.
#F5I2QI/9NG / @komar --> #F5I2QI/P3M / 3673 дня назад
@komar А о чем ты тогда говоришь?
#F5I2QI/6Y3 / @voker57 --> #F5I2QI/9NG / 3673 дня назад
@voker57 А SUM-ТО ХУЛИ ПАДАЕТ БЛЯДЬ? Объясняй давай.
#F5I2QI/5OB / @komar --> #F5I2QI/P3M / 3673 дня назад
@komar потому что там foldl. Тупой штоле?
#F5I2QI/30M / @voker57 --> #F5I2QI/5OB / 3673 дня назад
@voker57 О том, что не для прелюде там велосипедный сум без фолда.
#F5I2QI/JGN / @komar --> #F5I2QI/6Y3 / 3673 дня назад
@voker57 Но ведь там нет foldl.
#F5I2QI/H82 / @komar --> #F5I2QI/30M / 3673 дня назад
@komar там велосипедный foldl
#F5I2QI/MX6 / @voker57 --> #F5I2QI/H82 / 3673 дня назад
@voker57 http://hackage.haskell.org/package/base-4.6.0.1/docs/src/Data-List.html#sum Ну и какого хуя он падает? По той же причине?
#F5I2QI/9LR / @komar --> #F5I2QI/MX6 / 3673 дня назад
@fix поправка: надо компилировать с -O
#F5I2QI/OM4 / @fix --> #F5I2QI/4PX / 3673 дня назад
@komar И какого хуя там не заюзали фолд без санок-хуянок? Ясно же, что нужны все элементы, абсолютно все.
#F5I2QI/ORL / @komar --> #F5I2QI/9LR / 3673 дня назад
@komar Ну и хули ты показал? Код реализации foldl. Естественно, падает по той же причине.
#F5I2QI/YMD / @voker57 --> #F5I2QI/9LR / 3673 дня назад
@fix А отсосать Пейтону Джонсу не надо?
#F5I2QI/UDN / @komar --> #F5I2QI/OM4 / 3673 дня назад
@komar Как хочешь.
#F5I2QI/7JF / @fix --> #F5I2QI/UDN / 3673 дня назад
@voker57 Блять, тогда объясни мне, нахуя там велосипедный foldl, если он работает точно так же. Это на миллисекунду быстрее, чем передавать HOF?
#F5I2QI/YMT / @komar --> #F5I2QI/YMD / 3673 дня назад
@komar мало ли какой у тебя там будет инстанс (+), может какому-то и не надо.
#F5I2QI/AFJ / @voker57 --> #F5I2QI/ORL / 3673 дня назад
@komar Понятия не имею.
#F5I2QI/3UW / @voker57 --> #F5I2QI/YMT / 3673 дня назад
@voker57 Еб твою мать, НАЧАЛЬНИК, ХУЛИ ВЫ МЕНЯ В ЯЗЫК С ТАЙПКЛАССАМИ ПОСАДИЛИ
#F5I2QI/I6Q / @komar --> #F5I2QI/AFJ / 3673 дня назад
@voker57 хули там иметь import Criterion.Main main = defaultMain [ bgroup "sumvsfold" [ bench "sum" $ whnf (\x -> sum [1..x]) 1000000, bench "foldl" $ whnf (\x -> foldl (+) 0 [1..x]) 1000000 ] ] benchmarking sumvsfold/sum time 21.46 ms (21.00 ms .. 21.99 ms) 0.997 R² (0.994 R² .. 0.999 R²) mean 21.74 ms (21.38 ms .. 22.33 ms) std dev 1.056 ms (727.1 μs .. 1.643 ms) variance introduced by outliers: 19% (moderately inflated) benchmarking sumvsfold/foldl time 28.04 ms (23.36 ms .. 33.76 ms) 0.913 R² (0.865 R² .. 0.993 R²) mean 23.64 ms (22.48 ms .. 25.88 ms) std dev 3.650 ms (1.553 ms .. 5.915 ms) variance introduced by outliers: 67% (severely inflated)
#F5I2QI/25O / @plhk --> #F5I2QI/3UW / 3673 дня назад
@plhk Охуительно.
#F5I2QI/V75 / @komar --> #F5I2QI/25O / 3673 дня назад
Подозреваю, что потому что в `sum` сидит `foldl`, а не `foldl'`. Первый не нужен почти никогда (хотя где-то видел извращенцев, которым он был нужен, но я так и не понял зачем).
#F5I2QI/CAT / @kb / 3672 дня назад
@kb Да, вот sum http://hackage.haskell.org/package/base-4.7.0.1/docs/src/Data-List.html#sum Вот так работает: ``` Prelude> import Data.List (foldl') Prelude Data.List> let sum' = foldl' (+) 0 Prelude Data.List> sum' [1/20000, 1/19999..1/1] 1.9998999344245967e8 ```
#F5I2QI/8WQ / @kb --> #F5I2QI/CAT / 3672 дня назад
@kb тред не читай @ сразу отвечай
#F5I2QI/2GF / @voker57 --> #F5I2QI/8WQ / 3672 дня назад
@voker57 Прочитал, какие-то советы по компиляции с флагами.
#F5I2QI/2CD / @kb --> #F5I2QI/2GF / 3672 дня назад
@voker57 > оптимизирующий для памяти windows.ini bugs=off какой-то
#F5I2QI/O1D / @kb --> #F5I2QI/12E / 3672 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.