Size: a a a

2020 June 26

SP

Stanislav Popov in rust_offtopic
или как там
do
writeInFile "Hello"
writeInFile "Hello"
источник

AZ

Alex Zhukovsky in rust_offtopic
тогда:

let x = writeInFile("Hello");
let y = writeInFile("Hello");

вызовут на печать строчки
источник

A

Abu in rust_offtopic
polunin.ai
На го?
Это грех?
источник

SP

Stanislav Popov in rust_offtopic
хочешь сказать что в хаскеле именно заморачиваются с тем чтобы каррировать и пропихивать дальше вместо копипасты?
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
или как там
do
writeInFile "Hello"
writeInFile "Hello"
это сахар для:

do
_ <- writeInFile "Hello"
_ <- writeInFile "Hello"

Который
дальше рассахаривается в последовательность биндов, и снова никакой нечистоты нет
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
хочешь сказать что в хаскеле именно заморачиваются с тем чтобы каррировать и пропихивать дальше вместо копипасты?
в хаскелле заморачиваются чтобы каррирование (а точнее, любой биндинг) само по себе не делало никаких действий
источник

AZ

Alex Zhukovsky in rust_offtopic
да, суть ИО только в этом
источник

AZ

Alex Zhukovsky in rust_offtopic
чтобы print ("Hello") не делал реально вывод, а давал биндинг, с которым можно потом что-то делать
источник

SP

Stanislav Popov in rust_offtopic
нечистоты нет но вызывая одну и ту же функцию(да, вызывая, через ду, через  _ <- writeInFile "Hello") - у тебя прет нечистота
источник

SP

Stanislav Popov in rust_offtopic
Alex Zhukovsky
чтобы print ("Hello") не делал реально вывод, а давал биндинг, с которым можно потом что-то делать
ну так этот момент легко проебать и сделать биндинг повторно
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
нечистоты нет но вызывая одну и ту же функцию(да, вызывая, через ду, через  _ <- writeInFile "Hello") - у тебя прет нечистота
ну ты вызвал одну и ту же функцию дважды, но мы можем применить правило чистоты, мы должны иметь возможнотсь заменить вызов функции на результат, проверяем:

do
let writeHello = writeInFile "Hello"
_ <- writeHello
_ <- writeHello
источник

SP

Stanislav Popov in rust_offtopic
вернее не повторно а повторно с биндингом к ио
источник

AZ

Alex Zhukovsky in rust_offtopic
получим тот же результат, значит все верно
источник

P

PRISE in rust_offtopic
Чо вы умные такие то все
источник

SP

Stanislav Popov in rust_offtopic
убедил в этом появилось чуть больше поинта чем было
источник

P

PRISE in rust_offtopic
Кто из FANG тут?
источник

AZ

Alex Zhukovsky in rust_offtopic
переменная writeHello типа IO одна и та же, но два бинда на неё дают разные результаты
источник

SP

Stanislav Popov in rust_offtopic
Alex Zhukovsky
переменная writeHello типа IO одна и та же, но два бинда на неё дают разные результаты
да, это неплохо согласен
источник

V

Vetro in rust_offtopic
Alex Zhukovsky
ну ты вызвал одну и ту же функцию дважды, но мы можем применить правило чистоты, мы должны иметь возможнотсь заменить вызов функции на результат, проверяем:

do
let writeHello = writeInFile "Hello"
_ <- writeHello
_ <- writeHello
О, я про метод замещения как раз сегодня в "фп в скале" увидел
источник

V

Vetro in rust_offtopic
Интересный подход
источник