Вопросы по теме 'continuation-passing'
Преобразование в CPS (стиль продолжения прохождения)
Как преобразовать эти процедуры из схемы в форму CPS?
(lambda (x y)
((x x) y))
(lambda (x)
(lambda (f)
(f (lambda (y)
(((x x) f) y))))
((lambda (x) (x x)
(lambda (x) (x x))
*Это не домашнее задание!
5718 просмотров
schedule
17.10.2022
Почему в стандартной библиотеке OCaml так много нерекурсивных функций?
В последнее время я переписывал многие функции стандартной библиотеки OCaml, чтобы они были хвостовыми рекурсивными. Учитывая, что это повлекло за собой прямое преобразование CPS, я не понимаю, почему версии по умолчанию не написаны таким образом....
1362 просмотров
schedule
29.07.2023
Продолжение передачи стиля представления типов
Предположим, у нас есть монада, определяемая return , (>>=) и набором законов. Есть тип данных
newtype C m a = C { unC ∷ forall r. (a → m r) → m r }
также известный как Codensity . C m a ≅ m a учитывая, что m является Monad ,...
1059 просмотров
schedule
31.08.2023
SICP, стиль прохождения продолжения и батут Clojure
Я работаю с SICP, и упражнение 2.29-b дало мне возможность повеселиться со стилем передачи продолжений при обходе мобильных и ответвлений.
Короче говоря, у каждого мобильного телефона есть левая и правая ветви, которые состоят из длины и либо...
947 просмотров
schedule
16.05.2023
Использование привязки для очистки стека вызовов во время вычисления CPS
EDIT : этот мой вопрос оказался довольно некорректным. Я все еще верю, что, особенно просматривая комментарии, это может дать некоторую пищу для размышлений, но если будет набрано достаточно голосов, чтобы закрыть его, я пойму.
Во время...
305 просмотров
schedule
21.02.2024
Написание интерпретатора для языка с разрывами
Я пытаюсь написать интерпретатор для простого языка программирования на схеме. Прямо сейчас я пишу процедуру для обработки циклов while с операторами break. Чтобы решить эту проблему, я использую call/cc.
Когда язык разобран, это выглядит так:...
197 просмотров
schedule
21.10.2022
Как использовать тип Reader, закодированный в стиле передачи продолжения
У меня сложилось впечатление, что каждое значение типа a может быть описано с помощью полиморфного типа newtype Id a = Id {runId :: forall r. (a -> r) -> r } ранга 2 в стиле передачи продолжения. Поэтому я получил следующий тип, чтобы...
60 просмотров
schedule
06.01.2023
Как мне лениво преобразовать список в этот тип?
Рассмотрим этот тип Vect :
{-# LANGUAGE GADTs, DataKinds, KindSignatures, RankNTypes #-}
import Data.Kind (Type)
data Nat = Zero | Succ Nat
data Vect :: Nat -> Type -> Type where
Nil :: Vect 'Zero a
Cons :: a -> Vect n a ->...
115 просмотров
schedule
23.07.2023
Как передавать массивы между страницами без формы в php
Я использовал многомерный массив из базы данных, чтобы вернуть строку ($ dataTotal) и еще одну, чтобы вернуть позицию в этой строке ($ data ['position1']), в зависимости от того, хочу ли я отобразить что-либо в массиве. на той первой странице
Когда...
22 просмотров
schedule
15.12.2023