Size: a a a

2020 April 23

p

polunin.ai in rust_offtopic
Doge Shibu
Чтобы можно было рефакторить код не включая голову на тему того, какой же непонятный побочный эффект может сделать вызов данной функции
main = do
 _ <- bar

догадайся что делает bar
источник

p

polunin.ai in rust_offtopic
он с равным успехом может вывести на экран 10, сделать "rm -rf /", дропнуть базу, или просто вернуть 2
источник

p

polunin.ai in rust_offtopic
в чем удобство непонимаю
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
main = do
 _ <- bar

догадайся что делает bar
если я в монаде то я знаю что нужно быть аккуратным. А в сишарпе у меня _Весь_ код в монаде
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
main = do
 _ <- bar

догадайся что делает bar
Так мне не нужно знать, что он делает. Мне важно, чтобы можно было такие вещи делать:
main = do 
 x <- do { bar; foo; wat; wan }
 y <- do { bar; foo; wat; wan }
 return x + y

Заменить на


main = do
 let action = do { bar; foo; wat; wan }
 x <- action
 y <- action
return x + y


И т.д. и т.п.
источник

DS

Doge Shibu in rust_offtopic
Вообще не включая при этом мозг
источник

DS

Doge Shibu in rust_offtopic
Я знаю, что такие мои действия семантику программы не поменяют
источник

AZ

Alex Zhukovsky in rust_offtopic
ты офк не читаешь что я на хабре пишу, но я там писал пример как я на 4 часа поломал прод потому тчо 2 строчки кода местами поменял и всё развалилось
источник

p

polunin.ai in rust_offtopic
выносишь в отдельную функцию
источник

AZ

Alex Zhukovsky in rust_offtopic
будь в шарпе ио я бы так не ошибся
источник

A

Aleksandr Khristenko in rust_offtopic
polunin.ai
ну и зачем это?
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
ты офк не читаешь что я на хабре пишу, но я там писал пример как я на 4 часа поломал прод потому тчо 2 строчки кода местами поменял и всё развалилось
это решается и без ссылочной прохрачности ИО которое не ссылочно прохрачно на самом деле.
источник

p

polunin.ai in rust_offtopic
я не против ИО и не против ссылочной прохрачности. Я против ссылочно прохрачного ИО
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
выносишь в отдельную функцию
Это надо думать, где можно переиспользовать значения вызовов функций, где нельзя, где вызов может что-то плохое сделать, где нет.

Тут мне не надо мозг включать вообще
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
я не против ИО и не против ссылочной прохрачности. Я против ссылочно прохрачного ИО
ио без ссылочной прозрачности не нужно
источник

AZ

Alex Zhukovsky in rust_offtopic
это буквально Id монада чтобы декорировать эффекты внешнего мира
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
я не против ИО и не против ссылочной прохрачности. Я против ссылочно прохрачного ИО
IO - без ссылочной прозрачности - это считай энергичный Task из шарпа или Future из скалы, а мы все знаем насколько плохо это заканчивается
источник

p

polunin.ai in rust_offtopic
просто сделать сахарок <- над функциями которые возвращают IO и вот вся ваша ссылочная прохрачность
источник

G

Gymmasssorla in rust_offtopic
Жульники эти фпшники ну их нафиг
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
ио без ссылочной прозрачности не нужно
можно как в расте - делать ИО разрешено только в блоке IO { /* here */ }
источник