Size: a a a

2020 May 15

p

polunin.ai in rust_offtopic
чистый != ФП. ФП это про отсутсвие мутабельного состояния. про ссылочно прозрачные функции это самовыдумка.
источник

p

polunin.ai in rust_offtopic
ссылочно прозрачные функции это следствие из ФП, но не причина.
источник

p

polunin.ai in rust_offtopic
любой ФП код ссылочно прозрачный. но не любой ссылочно прозрачный код - ФП
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
ссылочно прозрачные функции это следствие из ФП, но не причина.
Ну вот опять мне это пытается говорить человек, который почерпнул какие-то мифы из головы, ни разу не писал ни на одном ФП языке
источник

DS

Doge Shibu in rust_offtopic
Потрясающе
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Ну вот опять мне это пытается говорить человек, который почерпнул какие-то мифы из головы, ни разу не писал ни на одном ФП языке
ты вкурсе что сейчас разговор идет про определения?
источник

p

polunin.ai in rust_offtopic
чтобы знать определение слова "торт" не нужно уметь его готовить
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
ты вкурсе что сейчас разговор идет про определения?
Ну у тебя опредление зря использует термин декларативно:
function definitions are trees of expressions that each return a value, rather than a sequence of imperative statements which change the state of the program or world.

Т.е. вот это абсолютно верно для всех тех програм с ST, что я скинул выше. Они все состоят из фукнций, скомпоженных вместе, каждая из который возвращает значение.
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Ну у тебя опредление зря использует термин декларативно:
function definitions are trees of expressions that each return a value, rather than a sequence of imperative statements which change the state of the program or world.

Т.е. вот это абсолютно верно для всех тех програм с ST, что я скинул выше. Они все состоят из фукнций, скомпоженных вместе, каждая из который возвращает значение.
неа, у тебя там состояние есть
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
неа, у тебя там состояние есть
Где?
источник

DS

Doge Shibu in rust_offtopic
Там только функции и значения
источник

DS

Doge Shibu in rust_offtopic
Там нет стейтментов
источник

p

polunin.ai in rust_offtopic
ref
источник

p

polunin.ai in rust_offtopic
ты его изменяешь
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Там нет стейтментов
let mut foo = 10;
(1..10).for_each(|i| do_some(&mut foo, i));
здесь тоже только функции)
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
let mut foo = 10;
(1..10).for_each(|i| do_some(&mut foo, i));
здесь тоже только функции)
Нет, тут стейтмент, let mut foo = 10;

А та хаскель программа без стейтментов же, она вот такая штука:
newSTRef "hello" >>= (\ref -> readSTRef ref >>= (\x -> writeSTRef ref (x ++ "world") >> readSTRef ref ))
источник

DS

Doge Shibu in rust_offtopic
Где newSTRef "hello" - это функции вида: #State s (STRef String)
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Нет, тут стейтмент, let mut foo = 10;

А та хаскель программа без стейтментов же, она вот такая штука:
newSTRef "hello" >>= (\ref -> readSTRef ref >>= (\x -> writeSTRef ref (x ++ "world") >> readSTRef ref ))
create_foo().and_then(|mut foo| (1..10).for_each(|i| do_some(&mut foo, i)))
а так?)
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
create_foo().and_then(|mut foo| (1..10).for_each(|i| do_some(&mut foo, i)))
а так?)
Нет, из-за того, как for_each устроен, он отдаёт (), то есть то же стейтмент
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
create_foo().and_then(|mut foo| (1..10).for_each(|i| do_some(&mut foo, i)))
а так?)
Т.е. в том коде выше у тебя нет ни одного стейтмента, у тебя только значения, которые ты как-то композируешь вместе
источник