Описание тега callcc
NoneCall -with-current-continue (сокращенно call/cc) - управляющий оператор в функциональном программировании.
4
ответа
Понимание примеров callCC на Haskell
У меня проблемы с пониманием ответов на предыдущий вопрос. Я надеюсь, что объяснение следующего прояснит ситуацию. Следующий пример взят из fpcomplete import Control.Monad.Trans.Class import Control.Monad.Trans.Cont main = flip runContT return $ do …
12 дек '13 в 06:42
1
ответ
Call/cc симулирует goto таким образом?
В книге Lisp in Small Pieces приведен следующий пример кода, который предназначен для демонстрации того, что call/cc мог симулировать goto. (define (fact n) (let ((r 1) (k 'void)) (call/cc (lambda (c) (set! k c) 'void)) (set! r (* r n)) (set! n (- n…
12 фев '15 в 22:04
1
ответ
Как применить callcc, чтобы обеспечить механизм продолжения escape для использования с монадой продолжения
Я пытаюсь реализовать монаду продолжения в Javascript для обработки стиля передачи продолжения и асинхронных потоков управления. Вот моя монада продолжения обучения: // auxiliary functions const log = prefix => x => console.log(prefix, x); con…
30 сен '16 в 11:51
1
ответ
call/cc в Python - возможно?
Скажем, у нас есть следующий код в схеме (define cc #f) (define bar 0) (define (func) (print "This should show only once") (call/cc (lambda (k) (set! cc k))) (print bar) (set! bar (+ bar 1))) (define (g) (func) (print "This should show multiple time…
30 янв '18 в 16:56
3
ответа
В чем разница между продолжением и обратным вызовом?
Я просматривал всю сеть в поисках просвещения о продолжениях, и это ошеломляет, как простейшие объяснения могут так сильно запутать программиста JavaScript, как я. Это особенно верно, когда большинство статей объясняют продолжения с помощью кода в S…
24 дек '12 в 09:12
0
ответов
Что делает действие этой программы lwp разным между прямой загрузкой в строке комментария и использованием процедуры загрузки?
Я использую guile 2.0.13 как мой интерпретатор схемы, и я написал файл 3.3.3.scm следующим образом: (define lwp-list '()) (define quit-k #f) (define lwp (lambda (thunk) (set! lwp-list (append lwp-list (list thunk))))) (define start (lambda () (if (n…
06 дек '16 в 10:47
1
ответ
Тип продолжения в Racket и определение текущего продолжения
Какой тип продолжения в Racket? А как определить текущее продолжение, глядя на вызов call/cc? (Например: правильная ли стратегия предположить, что текущее продолжение - это то, что следует сразу после закрывающей скобки call/cc?)
12 дек '14 в 14:26
10
ответов
Что такое Call/ CC?
Я несколько раз пытался понять концепцию продолжения и вызова / cc. Каждая попытка была неудачной. Может кто-нибудь объяснить мне эти концепции, в идеале с более реалистичными примерами, чем в Википедии или в других сообщениях SO. У меня есть опыт р…
04 мар '09 в 22:30
1
ответ
Перезапуск продолжения схемы в странном месте
ОБНОВИТЬ: Таким образом, проблема, похоже, связана с генератором, а не обязательно с функциями next-token и lookahead. Я добавил несколько экранных вызовов, где происходили set! S, и обнаружил, что проблема в том, что после того, как (generate-token…
11 ноя '10 в 04:35
1
ответ
Как начать снимать текущие продолжения в Racket
Я обучаюсь call/cc в разделе "Ракетки" по типу бумаги. Продолжения на примере: исключения, поиск во времени, генераторы, потоки и сопрограммы 1. В документе упоминается, что наиболее выгодный API получен из call/cc предоставляя процедуру lambda (cc)…
26 окт '15 в 20:36
9
ответов
Я просто не получаю продолжения!
Для чего они и чем они хороши? У меня нет степени CS, и у меня есть опыт работы с VB6 -> ASP -> ASP.NET/C#. Кто-нибудь может объяснить это в ясной и сжатой форме?
02 сен '08 в 20:55
3
ответа
Можно ли использовать call/cc для реализации рекурсии?
Интересно, можно ли определить рекурсивную функцию, не вызывая саму функцию в ее теле, а используя вместо этого call/cc? Благодарю.
29 мар '12 в 08:42
1
ответ
Опытные функции get-first, get-next и waddle от Schemer
(define get-first (lambda (l) (call-with-current-continuation (lambda (here) (set! leave here) (waddle l) (leave (quote ())))))) (define get-first (lambda (l) (call-with-current-continuation (lambda (here) (set! leave here) (leave (waddle l)))))) Дл…
15 июн '12 в 01:52
3
ответа
get-first - опытный интриган
Пожалуйста, посмотрите на two-in-a-row*? функция в главе 19. Мой вопрос о (leave '()) в get-first вспомогательная функция. Обратите внимание, что (waddle l) либо вернется '() или атом, который указывает, что список исчерпан, или атом из списка извле…
04 фев '17 в 19:58
5
ответов
call/cc в Lua - возможно?
В статье Википедии о продолжении говорится: "На любом языке, который поддерживает замыкания, можно писать программы в стиле продолжения передачи и вручную реализовывать call/cc ". Либо это правда, и мне нужно знать, как это сделать, либо это не так,…
13 май '10 в 14:33
1
ответ
Как работает этот пример callcc?
(callcc (fun k -> k 7)) + 3 (callcc (fun k -> 7)) + 3 Что каждый из них оценивает и почему?
13 май '10 в 16:41
3
ответа
Как заставить функцию в лямбде вызываться в другой функции, используемой внутри тела лямбды
Я хочу использовать call/cc для имитации оператора обработки исключений: try...(throw)...exception. Вот код: (define (month n) ; check if it's a month number (1-12) (if (or (not (integer? n)) (< n 1) (> n 12)) (throw -1) (display n) ) ) (defin…
23 июл '18 в 04:51
4
ответа
Особенности звонка / куб.
Это связано с тем, что такое Call/ CC?, но я не хотел угонять этот вопрос для моих собственных целей, и некоторые из его аргументов, такие как аналогия с setjmp/longjmp, уклоняются от меня. Я думаю, что у меня есть достаточное представление о том, ч…
13 июл '09 в 14:49
0
ответов
Сохранить текущее продолжение в SMLofNJ
Я читал эту забавную страницу, объясняющую продолжения в рэкет. Они представляют код для сохранения текущего продолжения вычислений (и используют этот трюк позже, чтобы реализовать возврат). Код выглядит следующим образом: (define (currcc) (call/cc …
19 ноя '15 в 17:25
2
ответа
Как работает `values` в Scheme?
Из стандарта R5RS: Values might be defined as follows: (define (values . things) (call-with-current-continuation (lambda (cont) (apply cont things)))) Моим первым толкованием этого было то, что выражение вроде (+ (values 1 2)) эквивалентно (apply + …
03 апр '18 в 23:06