Вопросы по теме 'continuation-passing'

Стиль прохождения продолжения - композиция функций
Я изучаю CPS с Racket, и мне удалось написать эти функции: ;lift a regular single-arg function into CPS (define (lift/k f) (lambda (x k) (k (f x)))) ;compose two CPS functions (define (compose/k f g) (lambda (x k) (g x (lambda (y)...
1082 просмотров

Стиль прохождения продолжения (CPS) при построении графа
Я работаю над библиотекой для поверхностей подразделения. Чтобы представить топологию сетки, я использую своего рода реечную структуру данных с разделенными вершинами (см. диаграмму слева). Во время построения сетки, которую также можно...
756 просмотров

Как написать это в CPS?
Я пытаюсь освоить стиль передачи продолжения (CPS) и поэтому перерабатываю пример, показанный мне Гэри Шортом довольно давно. У меня нет исходного кода его примера, поэтому я пытаюсь переработать его пример по памяти. Рассмотрим следующий код:...
328 просмотров
schedule 17.06.2023

Продолжения и для понимания в чем несовместимость?
Я новичок в Scala и пытаюсь осмыслить продолжения, я пытаюсь воспроизвести оператор yield return C #. После этого сообщения я написал следующий код: package com.company.scalatest import scala.util.continuations._; object GenTest { val...
815 просмотров

Можно ли записать функцию свертки в хвостовой рекурсивной форме?
У меня есть функция, которую я хочу написать в хвостовой рекурсивной форме. Функция вычисляет количество способов получить сумму k , бросая s односторонний кубик n раз. Я видел математическое решение этой функции в этом ответе . Это выглядит...
409 просмотров

Обратные вызовы JS: передача продолжения или стиль конфетной фабрики?
На курсе по стилям программирования нас просят реализовать некоторый код как в « стиле передачи продолжения », так и в « стиле конфетной фабрики ». Мы читаем книгу «Упражнения по стилям программирования» Кристины Видейры Лопес (главы 5 и 8). Нас...
138 просмотров

В продолжении scala, как написать цикл в форме CPS?
Я пытаюсь реализовать пример по адресу: https://portal.klewel.com/watch/webcast/scala-days-2019/talk/37/ используя продолжение scala: object ReverseGrad_CPSImproved { import scala.util.continuations._ case class Num( x: Double,...
87 просмотров

Как сделать монаду параллелизма Коэна Клаессена с чистыми переменными?
Известно, как создать монаду чистого параллелизма на основе _ 1_ , основанный на функциональной жемчужине Коена Клаессена: data Action m where Atom :: m (Action m) -> Action m Fork :: [Action m] -> Action m Stop :: Action m fork ::...
57 просмотров