Описание тега tying-the-knot
Tying the knot is a technique in which you can create circular data structures in the absence of mutation by referencing a yet to be produced value.
1
ответ
Летрек в Скала? (Неизменный способ "завязать узел?")
Предположим, у меня есть глупый маленький класс case, например: case class Foo(name: String, other: Foo) Как я могу определить a а также b неизменно так, что a.other является b, а также b.other является a? Предоставляет ли scala какой-либо способ "з…
06 июн '12 в 00:26
1
ответ
Есть ли какой-нибудь способ удобного способа выразить графики, используя стратегию связывания узлов?
Как объяснялось в моем предыдущем вопросе, невозможно различить два графика, построенных с использованием стратегии связывания узлов, если у вас нет какой-то уникальной метки на ваших узлах. Используя двухсторонний график в качестве примера: data No…
16 окт '15 в 00:09
3
ответа
Можно ли выполнить поиск на графике, построенном по стратегии связывания узлов?
Стратегия привязки к узлу может быть использована для построения графиков, например, используя простой двусторонний граф в качестве примера: data Node = Node Node Node -- a - b -- | | -- c - d square = a where a = Node b c b = Node a d c = Node a d …
15 окт '15 в 22:47
3
ответа
Почему "итерация" из прелюдии не завязывает узел?
Почему нет iterate определяется как iterate :: (a -> a) -> a -> [a] iterate f x = xs where xs = x : map f xs в прелюдии?
20 июн '15 в 01:39
4
ответа
Самостоятельная ссылка в структуре данных - Проверка на равенство
В моей первоначальной попытке создания структуры данных с непересекающимся множеством я создал Point тип данных с parent указатель на другой Point: data Point a = Point { _value :: a , _parent :: Point a , _rank :: Int } Чтобы создать одноэлементный…
06 авг '13 в 10:20
3
ответа
Взаимно рекурсивный оценщик в Хаскеле
Обновление: я добавил ответ, который описывает мое окончательное решение (подсказка: единственный Expr Тип данных не было достаточно). Я пишу оценщик для небольшого языка выражений, но я застрял на LetRec построить. Это язык: type Var = String type …
19 авг '10 в 17:31
5
ответов
Завязывание узла с государственной монадой
Я работаю над проектом на Haskell, который включает в себя завязывание большого узла: я анализирую сериализованное представление графа, где каждый узел находится в некотором смещении в файле и может ссылаться на другой узел по смещению. Поэтому мне …
16 июн '12 в 03:34
1
ответ
Исправление рекурсивно определенного списка без << цикла >>
контекст Мы все знаем рекурсивно определенную последовательность Фибоначчи: fibs = 1 : 1 : zipWith (+) fibs (tail fibs) λ> fibs [1,1,2,3,5,9,13,21,34,55,89... Вопрос Я пытаюсь "залатать" его в нескольких местах, чтобы: общее рекурсивное уравнение…
31 дек '18 в 15:22
0
ответов
Haskell: обработка циклических зависимостей при завязывании узла
При написании языка программирования, который будет иметь локальный вывод типов (т. Е. Он будет способен выводить типы за исключением параметров функций, таких как Scala), я столкнулся с проблемой циклических зависимостей. Я выполняю проверку / выво…
13 авг '17 в 20:07
1
ответ
Ошибка в реализации Data.Map?
Я наткнулся на что-то, что я думаю, это ошибка в Data.Map, но это также вполне возможно ошибка в моих знаниях Haskell. Надеюсь, кто-нибудь может уточнить, что это такое:) Пожалуйста, обратитесь к этой сути. Я сериализую структуру кругового связанног…
24 июн '12 в 19:28
0
ответов
Как сохранить нативную структуру циклического списка во время преобразований в Haskell?
Я изучаю графоподобные вещи в Хаскеле, используя технику "связывания узла". Полагаю, циклические списки - это просто внутренняя реализация бесконечного списка, поэтому в идеальном мире не нужно заботиться о subj. Но это может оказать существенное вл…
25 июл '16 в 09:22
1
ответ
Связывание узла на взаимно рекурсивных ADT с хорошо типизированной обработкой ошибок
(Примечание: этот пост является файлом грамотного языка Haskell. Вы можете скопировать и вставить его в текстовый буфер, сохранить его как someFile.lhsи затем запустите его, используя ghc.) Описание проблемы: я не хочу создавать граф с двумя различн…
03 янв '14 в 02:05
1
ответ
Эквациональное рассуждение с завязыванием узла
Я пытаюсь обернуть голову вокруг Cont и callCC, уменьшив эту функцию: s0 = (flip runContT) return $ do (k, n) <- callCC $ \k -> let f x = k (f, x) in return (f, 0) lift $ print n if n < 3 then k (n+1) >> return () else return () Мне у…
21 июн '17 в 21:01
2
ответа
Как вы строите бесконечную сетку, подобную структуре данных в Haskell?
Я пытаюсь сформировать бесконечную сетку, подобную структуре данных, связывая узел. Это мой подход: import Control.Lens data Grid a = Grid {_val :: a, _left :: Grid a, _right :: Grid a, _down :: Grid a, _up :: Grid a} makeLenses ''Grid makeGrid :: G…
18 окт '17 в 15:27
1
ответ
Функциональная Жемчужина: Реализация трассировки в JavaScript
Росс Патерсон: " Стрелки и вычисления" trace функция (на стр. 11): trace :: ((a, c) -> (b, c)) -> a -> b trace f a = let (b, c) = f (a, c) in b trace Функция полезна для модуляции шага магической обратной связи в круговых программах. Наприм…
30 окт '16 в 15:20
1
ответ
Какие-нибудь методы для восстановления достаточно лени, чтобы связать себя узами монады?
Я хочу написать небольшой кусочек кода (сэкономив мне много времени для реализации в противном случае), связав узел. Это примерно так, n <- myinstr n x где в теории, myinstr должен бежать x получить значение, которое станет n, myinstr, который ра…
05 дек '11 в 00:41
2
ответа
Объяснение "завязывания узла"
Читая материал, связанный с Хаскеллом, я иногда сталкиваюсь с выражением "завязывать узел", думаю, я понимаю, что он делает, но не как. Итак, есть ли хорошие, простые и простые для понимания объяснения этой концепции?
10 дек '08 в 23:14
4
ответа
Лениво связывая узел для 1-мерного динамического программирования
Несколько лет назад я прошел курс алгоритмов, где мы давали следующую задачу (или такую): Есть здание n этажи с лифтом, который может подниматься только на 2 этажа одновременно и на 3 этажа одновременно. Используя динамическое программирование, напи…
23 ноя '13 в 06:13
1
ответ
Неисчерпывающие паттерны в вспомогательной функции для завязывания узла
Я пытаюсь написать функцию в Haskell, которая берет таблицу и дополняет ячейки каждого столбца в соответствии с максимальным размером строки в этом столбце. Я делаю это, используя технику - завязывая узел. Вот функция, которую я написал: type Row = …
15 сен '15 в 09:32
2
ответа
Бирекурсивное определение дважды бесконечного списка списков
контекст Я спросил о исправлении рекурсивно определенного списка на днях. Сейчас я пытаюсь поднять его до уровня, используя вместо этого 2D-список (список списков). Я буду использовать треугольник Паскаля в качестве примера, как, например, этот кра…
08 янв '19 в 17:06