Size: a a a

2021 March 01

SP

Stanislav Popov in rust_offtopic
Алексей
те самые проклятые грязные императивные мутации под капотом
так мне всеравно что они под капотом как ты не понимаешь. меня волнует только что внутри функций мне не надо помнить прошлый стейт
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
зацени магию

let y = []
for trololo ...:
   y.push(i)


мутируется

let x = || {
let y = []
 for trololo ...:
   y.push(i)
 y
};
let y = x(); // yaaay не мутируется, просто вызываем чистую функцию

Так по-твоему?
источник

SP

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Stanislav Popov
циклы мутируют, ифы мутируют. куча практик которые мутируют
ифы мутируют)) окей
источник

SP

Stanislav Popov in rust_offtopic
Αλεχ Zhukovsky
зацени магию

let y = []
for trololo ...:
   y.push(i)


мутируется

let x = || {
let y = []
 for trololo ...:
   y.push(i)
 y
};
let y = x(); // yaaay не мутируется, просто вызываем чистую функцию

Так по-твоему?
если ты уберешь эту лямбду в функцию чтобы она совсем не могла срать ничем в текущий скоуп - то да
источник

SP

Stanislav Popov in rust_offtopic
Αλεχ Zhukovsky
ифы мутируют)) окей
в языке где иф не экспрешен у тебя они обязательно мутируют если хочешь от них поведения экспрешена
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Stanislav Popov
если ты уберешь эту лямбду в функцию чтобы она совсем не могла срать ничем в текущий скоуп - то да
как так, у нас же есть функция у которой в теле
let y = []
for trololo ...:
   y.push(i)

ты только что сказал что это мутация
источник

H

Hirrolot in rust_offtopic
Αλεχ Zhukovsky
ифы мутируют)) окей
Бывает и такое, да
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Stanislav Popov
в языке где иф не экспрешен у тебя они обязательно мутируют если хочешь от них поведения экспрешена
let x;
x = 5
- по-твоему это мутация?
источник

А

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

SP

Stanislav Popov in rust_offtopic
Αλεχ Zhukovsky
let x;
x = 5
- по-твоему это мутация?
да. был неинициализированный стейт. стейт стал другим - мутировалось
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
let x = 5; // супер ФП
let y;
y = 5; // говно императивная мутация

смотри, не перепутай!
источник

H

Hirrolot in rust_offtopic
Алексей
и что?
Ну типа x = if ... else ...
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Stanislav Popov
да. был неинициализированный стейт. стейт стал другим - мутировалось
вопрос один, а как разрешил раст мутировать переменную без mut-кейворда?
источник

SP

Stanislav Popov in rust_offtopic
Αλεχ Zhukovsky
let x = 5; // супер ФП
let y;
y = 5; // говно императивная мутация

смотри, не перепутай!
да. почему нет?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
в нем хак?
источник

А

Алексей in rust_offtopic
да, я понимаю, но я не понимаю что ужасного случится, если заменить на if statement с мутацией
источник

А

Алексей in rust_offtopic
ну типа зачастую if expression удобнее да
источник

s

suhr in rust_offtopic
источник

SP

Stanislav Popov in rust_offtopic
Αλεχ Zhukovsky
вопрос один, а как разрешил раст мутировать переменную без mut-кейворда?
а он разрешает? никогда не видел. но вероятно костыль для дебичей
источник