0
ответов

Можно ли в Clojure совместить мемоизацию и оптимизацию хвостовых вызовов?

В clojure я хотел бы написать хвостовую рекурсивную функцию, которая запоминает свои промежуточные результаты для последующих вызовов. [EDIT: этот вопрос был переписан с использованием gcd в качестве примера вместо ...
вопрос задан: 23 May 2017 11:48
0
ответов

Почему быстрая сортировка называется алгоритмом хвостовой рекурсии?

Я знаю, что такое хвостовой рекурсивный алгоритм, как написано в этом ответе SO. Однако я просматриваю это видео алгоритма быстрой сортировки из Массачусетского технологического института, и в 18 :30 секунд профессор говорит, что это...
вопрос задан: 23 May 2017 11:47
0
ответов

.NET Threading - это блокировка, необходимая для назначений

У меня есть многопоточный код, который я хотел бы немного увеличить производительность, поэтому мне интересно, могу ли я избавиться от блокировки. У меня есть элемент поля: private IList status; Это ...
вопрос задан: 23 May 2017 10:33
0
ответов

Хвостовая рекурсия в C ++ с несколькими рекурсивными вызовами функций

Я читал этот пост о хвостовой рекурсии. Я скопирую опубликованное решение: unsigned int f (unsigned int a) {if (a == 0) {return a;} return f (a - 1); // хвостовая рекурсия } Я ...
вопрос задан: 23 May 2017 10:26
0
ответов

Это можно сделать хвостом -recursive in Prolog?

Я изучаю Prolog, и в качестве упражнения я экспериментирую с простой базой данных, которая вычисляет сумму всех чисел до данного числа (т.е. 0 = 0, 1 = 1, 2 = 3, 3 = 6, 4 = 10, ...). Достаточно просто: ...
вопрос задан: 1 March 2017 12:31
0
ответов

Как я могу быть уверен, что компилятор не оптимизирует мой тест производительности?

У меня есть класс, который занимает некоторое время расчеты. Пытаюсь проверить производительность: int numValues ​​= 1000000; Не оптимизировать мой тест производительности? У меня есть класс, который выполняет некоторые трудоемкие вычисл
вопрос задан: 4 March 2016 19:32
0
ответов

Разделение списка элементов на два списка нечетных и четных проиндексированных элементов

Я хотел бы создать функцию, которая принимает список и возвращает два списка: первый содержит каждый нечетный элемент, а второй - каждый четный элемент. . Например, учитывая [1; 2; 4; 6; 7; 9], я хотел бы ...
вопрос задан: 4 March 2016 15:49
0
ответов

Implementing a tail recursive version of quicksort-like function in F#/OCaML

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 ...
вопрос задан: 4 March 2016 15:44
0
ответов

Python: пространства имен в xml ElementTree (или lxml)

Я хочу получить унаследованный xml-файл, изменить и сохранить его. Вот мой код: from xml.etree import cElementTree as ET
вопрос задан: 4 March 2016 15:36
0
ответов

Оптимизация хвостового вызова F # с 2 рекурсивными вызовами?

Когда я писал эту функцию, я знал что я не получу оптимизацию хвостовых вызовов. Я до сих пор не придумал хороший способ справиться с этим и надеялся, что кто-то другой может предложить свои предложения. Я ...
вопрос задан: 4 March 2016 15:16
0
ответов

Binomial Coefficient using Tail Recursion in LISP

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 ...
вопрос задан: 17 February 2014 16:31
0
ответов

Clojure Tail Recursion с основными факторами

Я пытаюсь научиться закрытию и использую для этого принципы Prime Factors Kata и TDD. Посредством серии таких тестов Midje: (fact (primefactors 1) => (list)) (fact (...
вопрос задан: 2 December 2013 10:47
0
ответов

Хвост-рекурсивный ограниченный поток пар целых чисел (Scala)?

Я новичок в Scala, так что простите мое невежество! Я пытаюсь перебрать пары целых чисел, которые ограничены максимумом. Например, если максимальное значение равно 5, то итерация должна вернуть: (0, 0), (...
вопрос задан: 26 October 2013 10:26
0
ответов

Почему в стандартной библиотеке OCaml так много не-хвостовых -рекурсивных функций?

В последнее время я переписывал многие функции стандартной библиотеки OCaml, чтобы они стали хвостовыми -рекурсивными. Учитывая, что это повлекло за собой прямое -прямое преобразование CPS, я не понимаю, почему по умолчанию...
вопрос задан: 1 June 2013 02:57
0
ответов

Почему выиграл? • компилятор Scala применяет оптимизацию хвостового вызова, если метод не является окончательным?

Почему компилятор Scala не применяет оптимизацию хвостового вызова, если метод не является окончательным? Например, это: class C {@tailrec def fact (n: Int, result: Int): Int = if (n == 0) ...
вопрос задан: 2 May 2013 16:50
0
ответов

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

Прежде чем я начну: ДА, это домашнее задание из колледжа. Прежде чем мне скажут, что я ленив и злой: эта часть домашнего задания заключалась в преобразовании двух функций, которые у нас уже были, а эта - шестая. (определить (...
вопрос задан: 16 December 2012 16:00
0
ответов

Как выполнить рекурсию в анонимной функции без хвостовой рекурсии

Как выполнить рекурсию в анонимной функции без использования хвостовой рекурсии? Например, (из Vanderhart 2010, p. 38):(defn power [степень числа] (, если (ноль? показатель степени )1 (*число (...
вопрос задан: 26 July 2012 03:32
0
ответов

Разве этот код не в хвостовом рекурсивном стиле?

Я как бы новичок в Scala, пробуя его, читая «Начальная Scala» Дэвида Поллака. He defines a simple recursive function that loads all strings from the file: def allStrings(expr: => String): ...
вопрос задан: 1 July 2012 19:16
0
ответов

«Нет экземпляра для (Ord k )» при реализации Functor над Data.Map.Map

Я пытаюсь реализовать Functor fmap поверх Data.Map.Map, но получаю сообщение об ошибке. Я уверен, что мне не нужно преобразовывать карту в список и обратно, чтобы это заработало, но это...
вопрос задан: 29 June 2012 03:21
0
ответов

Преобразование функции для использования хвостовой рекурсии — формальное исследование

Кто-нибудь написал официальную статью, описывающую метод (автоматического) преобразования функций в хвостовую рекурсию? Я ищу формальную обработку университетского уровня, включая ограничения (типы...
вопрос задан: 22 May 2012 11:57
0
ответов

Неужели в OCaml нет никаких проверок на рекурсию?

Я недавно играл с OCaml, и быстро сделал свое любимое дело, чтобы проверить, насколько хорошо развита VM/Compiler, и написал рекурсивную программу: let rec f i = Printf.eprintf "i = %d\...
вопрос задан: 21 February 2012 08:48
0
ответов

Почему этот хвост -не рекурсивен?

Я работаю над книгой Real -World Functional Programming и пытался придумать свой собственный пример хвостовой рекурсии, прежде чем читать пример книги (, листинг 10.2, с. 265 ). В книге...
вопрос задан: 17 February 2012 07:09
0
ответов

Переполнение при использовании повторения в clojure

У меня есть простой калькулятор простых чисел в clojure (неэффективный алгоритм, но я просто пытаюсь понять поведение повторения для в настоящее время). Код следующий: (defn divisible [x, y] (= 0 (mod xy))) (...
вопрос задан: 8 February 2012 22:28
0
ответов

Почему моя хвостовая рекурсия Scala быстрее, чем цикл while?

Здесь два решения упражнения 4.9 в Scala для нетерпеливых Кей Хорстманна: «Напишите функцию lteqgt (значения: Array [Int], v: Int), которая возвращает тройку, содержащую количество значений меньше, чем ...
вопрос задан: 6 February 2012 22:58
0
ответов

Сокращенные операторы и хвостовая рекурсия

Допустим, у меня есть простая функция вроде этой: int all_true (int * bools, int len) {if (len <1) return TRUE; return * bools && all_true (bools + 1, len-1); } Эта функция может быть ...
вопрос задан: 15 December 2011 04:08
0
ответов

Мой код scala не получает TCO, хотя он проходит @tailrec

Я изучаю TCO Scala и написал следующий код import scala.annotation.tailrec final def tailReccursionEx (str: String ): List [String] = {@tailrec def doTailRecursionEx (str: String, ...
вопрос задан: 21 November 2011 21:56
0
ответов

Рекурсия по списку s-выражений в Clojure

Чтобы задать некоторый контекст, я нахожусь в процессе изучения Clojure и разработки Lisp в целом. На моем пути к Lisp, я в настоящее время работаю над серией "Little", пытаясь укрепить ...
вопрос задан: 8 November 2011 04:09
0
ответов

Почему F # налагает низкий предел на размер стека?

Я хотел бы знать, есть ли фундаментальная причина для ограничения глубины рекурсии в F # до 10000 или около того и, в идеале, как обойти этот предел. Я думаю, что вполне разумно писать код ...
вопрос задан: 4 November 2011 05:44
0
ответов

Могу ли я создать рекурсивно оптимизированное выражение для хвостового вызова ?

Я пытаюсь создать хвостовое рекурсивное выражение в .NET 4.0. Я могу построить его, но этот скомпилированный метод не оптимизирован для хвостового вызова, несмотря на указание tailCall = true, сгенерированный IL не имеет ...
вопрос задан: 26 October 2011 14:47
0
ответов

Что является более быстрым в Java для чтения/разбора входных данных консоли, сканера или BufferedReader?

Мне нужно создать процессор данных, способный обрабатывать более 2.5MB/s входных данных из STDIN, и вывести номер в STDOUT. Быстрее использовать BufferedReader с последующим преобразованием в типы данных или...
вопрос задан: 30 September 2011 13:38