Size: a a a

2020 August 08

Т8

Т-34 85 in rust_offtopic
Bogdan
А если компилятор вместо бесконечного цикла скажет что программа некоректная (ограничили в компиле глубигу рекурсии в 255) ?
В F# есть замена рекурсии на цикл при компиляции?
источник

B

Bogdan in rust_offtopic
Т-34 85
В F# есть замена рекурсии на цикл при компиляции?
AFAIK это возможно только там где можно применить хвостовую рекурсию.

Грубо говоря при обходе списка а не дерева
источник

B

Bogdan in rust_offtopic
Хак в виде использования структуры данных Stack вместо аппаратного стека невсчет
источник

Т8

Т-34 85 in rust_offtopic
Bogdan
AFAIK это возможно только там где можно применить хвостовую рекурсию.

Грубо говоря при обходе списка а не дерева
Хм, а это делается рослином или jit компилятором?
источник

Т8

Т-34 85 in rust_offtopic
Вообще, это всё выглядит (не утверждаю, что так и есть) как придумывание себе проблемы, а затем героическое её решение
источник

AZ

Alex Zhukovsky in rust_offtopic
Т-34 85
Вообще, это всё выглядит (не утверждаю, что так и есть) как придумывание себе проблемы, а затем героическое её решение
то же могу сказать про автовекторизацию и почти любую оптицизацию связанную с циклами в плюсах
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
то же могу сказать про автовекторизацию и почти любую оптицизацию связанную с циклами в плюсах
Ну... Да. Только это на шаг ближе к просветлению
источник

Т8

Т-34 85 in rust_offtopic
Чем писать рекурсии вместо циклов
источник

AZ

Alex Zhukovsky in rust_offtopic
рекурсии часто удобнее циклво
источник

AZ

Alex Zhukovsky in rust_offtopic
попробуй обойти дерево без рекурсии например
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
попробуй обойти дерево без рекурсии например
Согласен. Но действительно ли этот кейс частый?
источник

Т8

Т-34 85 in rust_offtopic
Я буквально на днях как раз в таком кейсе применил рекурсию
источник

AZ

Alex Zhukovsky in rust_offtopic
нет, частый кейс это использовать комбинаторы, а на чем они написаны вопрос десятый, в хаскелле на рекурсии, в расте на циклах. Но и там и там я просто пишу

(+1) <$> filter (>3) [1,2,3,4,5]

[1,2,3,4,5].iter().filter(|x| x > 3).map(|x| x + 1)
источник

Т8

Т-34 85 in rust_offtopic
Как раз при обходе дерева
источник

Т8

Т-34 85 in rust_offtopic
Интересно, а пишут ли на крестах вот так кто-то? Кроме авторов Boost и Дедфуда
https://stackoverflow.com/questions/40901615/how-to-replicate-map-filter-and-reduce-behaviors-in-c-using-stl
источник

Т8

Т-34 85 in rust_offtopic
Я понимаю, что бывают всякие неудобные ситуации, когда и правда проще заюзать эти ФП функции, но как их можно писать повседневно?
источник

Z

Zaner in rust_offtopic
в 20 стандарте будут ренджи
источник

Т8

Т-34 85 in rust_offtopic
Zaner
в 20 стандарте будут ренджи
Они только для Дедфуда будут полезны?
источник

DF

Dollar Føølish in rust_offtopic
Рейнджи это то же самое что в раст итераторы
источник

Т8

Т-34 85 in rust_offtopic
Dollar Føølish
Рейнджи это то же самое что в раст итераторы
В крестах свои итераторы
источник