Вопросы с тегом «recursion»

86
Наследование и рекурсия

Предположим, у нас есть следующие классы: class A { void recursive(int i) { System.out.println("A.recursive(" + i + ")"); if (i > 0) { recursive(i - 1); } } } class B extends A { void recursive(int i) { System.out.println("B.recursive(" + i + ")"); super.recursive(i + 1); } } Теперь давайте...

84
Рекурсия с использованием yield

Есть ли способ смешать рекурсию и yieldоператор? Например, генератор бесконечных чисел (с использованием рекурсии) будет выглядеть примерно так: def infinity(start): yield start # recursion here ... >>> it = infinity(1) >>> next(it) 1 >>> next(it) 2 Я старался: def...

83
Схемы рекурсии для чайников?

Я ищу действительно простые и понятные объяснения схем рекурсии и схем коркурсии (катаморфизмы, анаморфизмы, гиломорфизмы и т. Д.), Которые не требуют перехода по множеству ссылок или открытия учебника теории категорий. Я уверен, что неосознанно заново изобрел многие из этих схем и «применил» их в...

80
Node.js - превышен максимальный размер стека вызовов

Когда я запускаю свой код, Node.js выдает "RangeError: Maximum call stack size exceeded"исключение, вызванное слишком большим количеством рекурсивных вызовов. Я попытался увеличить размер стека Node.js на sudo node --stack-size=16000 app, но Node.js вылетает без сообщения об ошибке. Когда я...

79
Написание foldl с помощью foldr

В Real World Haskell , Глава 4. Функциональное программирование : Напишите foldl с помощью foldr: -- file: ch04/Fold.hs myFoldl :: (a -> b -> a) -> a -> [b] -> a myFoldl f z xs = foldr step id xs z where step x g a = g (f a x) Приведенный выше код меня сильно смутил, и кто-то...

49
Как написать 2 ** n - 1 как рекурсивную функцию?

Мне нужна функция, которая принимает n и возвращает 2 n - 1 . Это звучит достаточно просто, но функция должна быть рекурсивной. Пока у меня всего 2 н : def required_steps(n): if n == 0: return 1 return 2 * req_steps(n-1) В упражнении говорится: «Можно предположить, что параметр n всегда является...

13
Как рассуждать о безопасности стека в Scala Cats / fs2?

Вот фрагмент кода из документации для fs2 . Функция goрекурсивная. Вопрос в том, как узнать, безопасен ли он для стека, и как определить, является ли какая-либо функция безопасной для стека? import fs2._ // import fs2._ def tk[F[_],O](n: Long): Pipe[F,O,O] = { def go(s: Stream[F,O], n: Long):...

9
Вычисление вложенного корня в C

Меня попросили вычислить следующее вложенное корневое выражение, используя только рекурсию . Я написал код ниже, который работает, но они позволили нам использовать только одну функцию и 1 вход nдля цели, а не 2, как я использовал. Может кто-нибудь помочь мне преобразовать этот код в одну функцию,...