Size: a a a

2021 March 04

VZ

Vladislav Zavialov in Haskell
Мутабельность необходима для хорошей производительности, и ленивость как раз представляет собой ограниченную форму мутабельности
источник

[

[BRM]White Rabbit in Haskell
Aleksey Uymanov
Поведение программы становятся экспонинциально сложнее
Хотите немножко сайд-эффектов?
источник

AU

Aleksey Uymanov in Haskell
Vladislav Zavialov
Мутабельность необходима для хорошей производительности, и ленивость как раз представляет собой ограниченную форму мутабельности
Мутабельность надо контролировать. Кстати, в случае с ленивостью, она же наоборот вносит тормоза в хаскель. Для чего даже анализ строгости добавили.
источник

[

[BRM]White Rabbit in Haskell
[BRM]White Rabbit
Хотите немножко сайд-эффектов?
Казалось бы, почему лицо в гонках данных?
источник

к

кана in Haskell
Aleksei (astynax) Pirogov
do
 x <- pure 42
 when foo { x <- pure $ x + 1 }
 when bar { x <- pure 7 }
 when baz { x <- pure $ x * 10 }
 print x
вангую 8 вариантов
вот такая функция сгенерировала вот такой код, если выкинуть весь мусор
источник

к

кана in Haskell
Aleksei (astynax) Pirogov
do
 x <- pure 42
 when foo { x <- pure $ x + 1 }
 when bar { x <- pure 7 }
 when baz { x <- pure $ x * 10 }
 print x
вангую 8 вариантов
источник

к

кана in Haskell
Aleksei (astynax) Pirogov
do
 x <- pure 42
 when foo { x <- pure $ x + 1 }
 when bar { x <- pure 7 }
 when baz { x <- pure $ x * 10 }
 print x
вангую 8 вариантов
источник

VZ

Vladislav Zavialov in Haskell
Aleksey Uymanov
Мутабельность надо контролировать. Кстати, в случае с ленивостью, она же наоборот вносит тормоза в хаскель. Для чего даже анализ строгости добавили.
Да, ленивость может и ухудшать производительность. Чтобы было хорошо, нужно что-то делать лениво, что-то нет.
источник

[

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

AU

Aleksey Uymanov in Haskell
Vladislav Zavialov
Да, ленивость может и ухудшать производительность. Чтобы было хорошо, нужно что-то делать лениво, что-то нет.
Ну я тут немного трольнул, это понятно. Я про то, что лепить мутабельность поверх иммутабельности в хаскеле - это лучший способ стрельнуть себе в ногу.
источник

AU

Aleksey Uymanov in Haskell
Сейчас в хаскеле я пробегаю код глазами по диагонили, и я точно знаю, где что может поменяться, а где - нет.
источник

AU

Aleksey Uymanov in Haskell
С мутабельными переменными все может поменяться везде. Предсказуемость падает
источник

YS

Yan Shkurinskiy in Haskell
Ну уж не везде
источник

YS

Yan Shkurinskiy in Haskell
Обычно есть четко видные места для них
источник

YS

Yan Shkurinskiy in Haskell
И обычно они там по нужде какой-то
источник

AU

Aleksey Uymanov in Haskell
Сейчас мутабльные переменные четко отличимы от иммутабельных. Они работают в монаде, как минимум. Я ожидаю, что они будут меняться.
источник

G

GNU/Vsevolod in Haskell
[BRM]White Rabbit
Ого, нифига, я что, не наложал, прописывая это? "Если компилится, значит, работает", конечно, но всё равно не особо верится.
Это по tsoding-у?
источник

[

[BRM]White Rabbit in Haskell
GNU/Vsevolod
Это по tsoding-у?
Ага, правда он там вроде функтор сам писал
источник

G

GNU/Vsevolod in Haskell
Есть что-то наподобие
:: [a] -> (a -> a -> a -> b) -> b?
Т.е. uncurry, только для списков.
источник

к

кана in Haskell
что будет если передать туда пустой список?
источник