В clojure я хотел бы написать хвостовую рекурсивную функцию, которая запоминает свои промежуточные результаты для последующих вызовов. [EDIT: этот вопрос был переписан с использованием gcd в качестве примера вместо ...
Я знаю, что такое хвостовой рекурсивный алгоритм, как написано в этом ответе SO. Однако я просматриваю это видео алгоритма быстрой сортировки из Массачусетского технологического института, и в 18 :30 секунд профессор говорит, что это...
У меня есть многопоточный код, который я хотел бы немного увеличить производительность, поэтому мне интересно, могу ли я избавиться от блокировки. У меня есть элемент поля: private IList status; Это ...
Я читал этот пост о хвостовой рекурсии. Я скопирую опубликованное решение: unsigned int f (unsigned int a) {if (a == 0) {return a;} return f (a - 1); // хвостовая рекурсия
} Я ...
Я изучаю Prolog, и в качестве упражнения я экспериментирую с простой базой данных, которая вычисляет сумму всех чисел до данного числа (т.е. 0 = 0, 1 = 1, 2 = 3, 3 = 6, 4 = 10, ...). Достаточно просто: ...
У меня есть класс, который занимает некоторое время расчеты. Пытаюсь проверить производительность: int numValues = 1000000; Не оптимизировать мой тест производительности? У меня есть класс, который выполняет некоторые трудоемкие вычисл
Я хотел бы создать функцию, которая принимает список и возвращает два списка: первый содержит каждый нечетный элемент, а второй - каждый четный элемент. . Например, учитывая [1; 2; 4; 6; 7; 9], я хотел бы ...
Is it possible to implement a tail recursive version of the quick sort algorithm (via the continuation pattern)? And if it is, how would one implement it? Normal (not optimized) version: let rec ...
Когда я писал эту функцию, я знал что я не получу оптимизацию хвостовых вызовов. Я до сих пор не придумал хороший способ справиться с этим и надеялся, что кто-то другой может предложить свои предложения. Я ...
I want to program a function to find C(n,k) using tail recursion, and I would greatly appreciate your help. I have reached this: (defun tail-recursive-binomial (n k) (cond ((or (< n k) (< k ...
Я пытаюсь научиться закрытию и использую для этого принципы Prime Factors Kata и TDD. Посредством серии таких тестов Midje: (fact (primefactors 1) => (list)) (fact (...
Я новичок в Scala, так что простите мое невежество! Я пытаюсь перебрать пары целых чисел, которые ограничены максимумом. Например, если максимальное значение равно 5, то итерация должна вернуть: (0, 0), (...
В последнее время я переписывал многие функции стандартной библиотеки OCaml, чтобы они стали хвостовыми -рекурсивными. Учитывая, что это повлекло за собой прямое -прямое преобразование CPS, я не понимаю, почему по умолчанию...
Почему компилятор Scala не применяет оптимизацию хвостового вызова, если метод не является окончательным? Например, это: class C {@tailrec def fact (n: Int, result: Int): Int = if (n == 0) ...
Прежде чем я начну: ДА, это домашнее задание из колледжа. Прежде чем мне скажут, что я ленив и злой: эта часть домашнего задания заключалась в преобразовании двух функций, которые у нас уже были, а эта - шестая. (определить (...
Как выполнить рекурсию в анонимной функции без использования хвостовой рекурсии? Например, (из Vanderhart 2010, p. 38):(defn power [степень числа] (, если (ноль? показатель степени )1 (*число (...
Я как бы новичок в Scala, пробуя его, читая «Начальная Scala» Дэвида Поллака.
He defines a simple recursive function that loads all strings from the file: def allStrings(expr: => String): ...
Я пытаюсь реализовать Functor fmap поверх Data.Map.Map, но получаю сообщение об ошибке. Я уверен, что мне не нужно преобразовывать карту в список и обратно, чтобы это заработало, но это...
Кто-нибудь написал официальную статью, описывающую метод (автоматического) преобразования функций в хвостовую рекурсию? Я ищу формальную обработку университетского уровня, включая ограничения (типы...
Я недавно играл с OCaml, и быстро сделал свое любимое дело, чтобы проверить, насколько хорошо развита VM/Compiler, и написал рекурсивную программу: let rec f i = Printf.eprintf "i = %d\...
Я работаю над книгой Real -World Functional Programming и пытался придумать свой собственный пример хвостовой рекурсии, прежде чем читать пример книги (, листинг 10.2, с. 265 ). В книге...
У меня есть простой калькулятор простых чисел в clojure (неэффективный алгоритм, но я просто пытаюсь понять поведение повторения для в настоящее время). Код следующий: (defn divisible [x, y] (= 0 (mod xy))) (...
Здесь два решения упражнения 4.9 в Scala для нетерпеливых Кей Хорстманна: «Напишите функцию lteqgt (значения: Array [Int], v: Int), которая возвращает тройку, содержащую количество значений меньше, чем ...
Допустим, у меня есть простая функция вроде этой: int all_true (int * bools, int len) {if (len <1) return TRUE; return * bools && all_true (bools + 1, len-1);
} Эта функция может быть ...
Я изучаю TCO Scala и написал следующий код import scala.annotation.tailrec
final def tailReccursionEx (str: String ): List [String] = {@tailrec def doTailRecursionEx (str: String, ...
Чтобы задать некоторый контекст, я нахожусь в процессе изучения Clojure и разработки Lisp в целом. На моем пути к Lisp, я в настоящее время работаю над серией "Little", пытаясь укрепить ...
Я хотел бы знать, есть ли фундаментальная причина для ограничения глубины рекурсии в F # до 10000 или около того и, в идеале, как обойти этот предел. Я думаю, что вполне разумно писать код ...
Я пытаюсь создать хвостовое рекурсивное выражение в .NET 4.0. Я могу построить его, но этот скомпилированный метод не оптимизирован для хвостового вызова, несмотря на указание tailCall = true, сгенерированный IL не имеет ...
Мне нужно создать процессор данных, способный обрабатывать более 2.5MB/s входных данных из STDIN, и вывести номер в STDOUT. Быстрее использовать BufferedReader с последующим преобразованием в типы данных или...