Описание тега anonymous-recursion

Анонимная рекурсия - это рекурсия, которая не вызывает явно функцию по имени. Обычно это делается путем вызова текущей функции изнутри себя или путем передачи текущей функции в качестве обратного вызова другой (названной) функции. Используйте этот тег только для вопросов, непосредственно связанных с этим типом рекурсии.
2 ответа

Функция нерекурсивного списка с Y Combinator

Примечание: это своего рода домашняя работа, а не какая-то - конечная цель - иметь функцию, которая производит набор параметров для набора чисел, передаваемого этой функции в виде списка чисел. Я являюсь рекурсивной версией функции, но теперь мне ну…
1 ответ

Howto: "letrec" в C# (вызов лямбда-выражения в его определении)

Рассмотрим функцию факториала, определенную в теле метода как лямбда-выражение и присвоенную переменной: Func<int, int> factfail = n => { if (n == 0) return 1; else return n * factfail(n-1); }; Это не удается, так как factfail еще не связан…
05 апр '11 в 21:59
2 ответа

Little Schemer: напишите функцию, которая поддерживает только списки длиной ≤ 2

В книге "Маленький интриган" мы находим эту функцию, которая поддерживает только списки с длиной, меньшей или равной 1: (((lambda (mk-length) ; A. (mk-length mk-length)) (lambda (mk-length) (lambda (l) (cond ((null? l ) 0) (else (add1 ((mk-length et…
4 ответа

Рекурсия с анонимной функцией

Возможные дубликаты: JavaScript: рекурсивная анонимная функция? Анонимные рекурсивные функции PHP Мне было интересно... Можно ли сделать рекурсию с анонимной функцией? Вот один пример: мне нужно получить строку из шести символов, которая может содер…
1 ответ

Двухслойный комбинатор "Y-style". Это распространено? У этого есть официальное название?

Я изучал, как языки, которые запрещают использование before-def и не имеют изменяемых ячеек (нет set! или же setq) тем не менее может обеспечить рекурсию. Я конечно наткнулся на (знаменитого? Печально известного?) Y комбинатора и друзей, например: h…
3 ответа

Y комбинатор, бесконечные типы и анонимная рекурсия в Haskell

Я пытался решить проблему максимальной суммы подпоследовательности и придумал решение neato msss :: (Ord a, Num a) => [a] -> a msss = f 0 0 f gmax _ [] = gmax f gmax lmax (x:xs) = let g = max (lmax + x) in f (g gmax) (g 0) xs Вы вызываете функ…
2 ответа

Механизм анонимной функции для вызова себя в Scheme?

Я читаю The Little Schemer и смущаюсь из- за следующего кода: ((lambda (len) (lambda (l) (cond ((null? l) 0) (else (+ 1 (len (cdr l))))))) eternity) (define eternity (lambda (x) (eternity x))) Код должен определить пустой список, иначе он никогда не…
1 ответ

Как сделать это length≤1 более одного раза?

Я провел день, читая страницу 166 length≤1 в книге "Маленький интриган"; есть следующий код: (((lambda (mk-length) (mk-length mk-length)) (lambda (mk-length) (lambda (l) (cond ((null? l) 0) (else (add1 ((mk-length eternity) (cdr l)))))))) l) где l я…
2 ответа

Little Schemer: зачем заключать (mk-length в mk-length) в функцию?

В книге "Маленький интриган", в главе 9, при создании length Для произвольного длинного ввода предлагается следующее (на страницах 170-171), что приведено в следующем фрагменте кода (на самой странице 168): ((lambda (mk-length) (mk-length mk-length)…
1 ответ

Как создать большой массив функций, представляющих систему Вандермонда в C#?

Я пытаюсь создать большой массив функций Вандермонда. Я могу создать систему 4x3 следующим образом: Func<double[], double>[] vandermondeSystem = { x => x[0]*Math.Pow(1, 0) + x[1]*Math.Pow(1, 1) + x[2]*Math.Pow(1, 2), x => x[0]*Math.Pow(2…
11 окт '17 в 09:44
9 ответов

В Схеме, как вы используете лямбда для создания рекурсивной функции?

Я в классе Scheme, и мне было интересно написать рекурсивную функцию без использования define. Основная проблема, конечно, в том, что вы не можете вызывать функцию внутри себя, если у нее нет имени. Я нашел этот пример: это факторный генератор, испо…
10 окт '11 в 21:37
1 ответ

C# анонимная рекурсия и производительность Y-комбинатора

Ниже приведены функции и тесты анонимной рекурсии. Первый - это настоящий Y-комбинатор, выглядит хорошо и просто, но довольно медленно. Для выполнения 1 млн итераций требуется 1000 мс. Второй довольно уродливый из-за c(c,item), но работает в два раз…
5 ответов

Работает ли "Анонимная рекурсия" в.NET? Это в моно

Я зашел на этот сайт несколько дней назад на тему "Анонимная рекурсия в C#". Суть статьи в том, что следующий код не будет работать в C#: Func<int, int> fib = n => n > 1 ? fib(n - 1) + fib(n - 2) : n; Затем в статье подробно рассматриваю…
30 мар '11 в 14:54
2 ответа

Сбой функции рекурсии в CodeIgniter

Я использую функцию рекурсии, чтобы преобразовать мои меню в дереве. Массив, который я получил из базы данных: array ( [0] => stdClass Object ( [nav_group_id] => 1 [entity_id] => 1 [parent] => 0 [name] => Meter Reading [link] => # …
19 июл '12 в 12:28
7 ответов

Какие языки программирования поддерживают функции, которые принимают себя в качестве аргументов?

Я делаю академическое упражнение (для личностного роста). Я хочу найти языки программирования, которые позволяют вам определять функции, которые могут принимать себя (т.е. указатели на себя) в качестве аргументов. Например, в JavaScript: function fo…
3 ответа

Создание набора мощности в одной функции, без явной рекурсии и с использованием только простейших примитивов в Racket

Примечание: это бонус за домашнее задание, но я потратил слишком много времени на бесполезные попытки. Помощь приветствуется, но я полагаю, что в ней нет необходимости. Предпосылка: сгенерируйте набор мощности для списка чисел, но без использования …
19 ноя '20 в 06:08