Описание тега anonymous-recursion
Анонимная рекурсия - это рекурсия, которая не вызывает явно функцию по имени. Обычно это делается путем вызова текущей функции изнутри себя или путем передачи текущей функции в качестве обратного вызова другой (названной) функции. Используйте этот тег только для вопросов, непосредственно связанных с этим типом рекурсии.
2
ответа
Функция нерекурсивного списка с Y Combinator
Примечание: это своего рода домашняя работа, а не какая-то - конечная цель - иметь функцию, которая производит набор параметров для набора чисел, передаваемого этой функции в виде списка чисел. Я являюсь рекурсивной версией функции, но теперь мне ну…
24 ноя '11 в 17:05
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…
03 апр '15 в 16:22
4
ответа
Рекурсия с анонимной функцией
Возможные дубликаты: JavaScript: рекурсивная анонимная функция? Анонимные рекурсивные функции PHP Мне было интересно... Можно ли сделать рекурсию с анонимной функцией? Вот один пример: мне нужно получить строку из шести символов, которая может содер…
14 авг '11 в 08:26
1
ответ
Двухслойный комбинатор "Y-style". Это распространено? У этого есть официальное название?
Я изучал, как языки, которые запрещают использование before-def и не имеют изменяемых ячеек (нет set! или же setq) тем не менее может обеспечить рекурсию. Я конечно наткнулся на (знаменитого? Печально известного?) Y комбинатора и друзей, например: h…
28 апр '13 в 00:27
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 Вы вызываете функ…
29 ноя '11 в 09:24
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))) Код должен определить пустой список, иначе он никогда не…
23 окт '13 в 14:31
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 я…
24 сен '12 в 11:22
2
ответа
Little Schemer: зачем заключать (mk-length в mk-length) в функцию?
В книге "Маленький интриган", в главе 9, при создании length Для произвольного длинного ввода предлагается следующее (на страницах 170-171), что приведено в следующем фрагменте кода (на самой странице 168): ((lambda (mk-length) (mk-length mk-length)…
29 дек '17 в 06:49
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), но работает в два раз…
11 май '12 в 11:52
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…
22 апр '19 в 05:11
3
ответа
Создание набора мощности в одной функции, без явной рекурсии и с использованием только простейших примитивов в Racket
Примечание: это бонус за домашнее задание, но я потратил слишком много времени на бесполезные попытки. Помощь приветствуется, но я полагаю, что в ней нет необходимости. Предпосылка: сгенерируйте набор мощности для списка чисел, но без использования …
19 ноя '20 в 06:08