Size: a a a

2020 March 06

ХЛ

Хороший Лисичко in Lisp Forever
call/cc - это call/cc, сакральное Scheme знание
источник

AE

Alexey Egorov in Lisp Forever
Ну не такое уж сакральное.
источник

VM

Vyacheslav Mikushev in Lisp Forever
В этом я не смогу помочь. 😁 До конца с этим не разобрался. Но в книге On Lisp есть глава, где на макросах реализуют такую функциональность в Common Lisp. Можно попробовать там почитать.
источник

AE

Alexey Egorov in Lisp Forever
Ого, круто.
источник

AE

Alexey Egorov in Lisp Forever
Надо будет читнуть! Спасибо за наводку.
источник

AE

Alexey Egorov in Lisp Forever
У меня щас проблемы чтобы понять, что именно такое continuation.
источник

AE

Alexey Egorov in Lisp Forever
Которое передаётся аргументу call/cc.
источник

VM

Vyacheslav Mikushev in Lisp Forever
Глава 20. Continuations.
источник

A

Aragaer in Lisp Forever
у меня есть сниппет, где я на call/cc сделал типа корутины
источник

A

Aragaer in Lisp Forever
источник

A

Aragaer in Lisp Forever
continuation в call/cc это такая функция от одного аргумента, что этот аргумент является функцией "возврат в точку вызова". Если этот "возврат в точку вызова" вызвать с какими-то аргументами, то окажешься в том месте, откуда вызывал call/cc, а результат формы call/cc будет как раз то, что ты передал в "возврат"
источник

AE

Alexey Egorov in Lisp Forever
Още сложно.
источник

A

Aragaer in Lisp Forever
ща, попробую минимальный пример
источник

A

Aragaer in Lisp Forever
#;1> (call/cc (lambda (back) (back 10)))
10
источник

AE

Alexey Egorov in Lisp Forever
И что же тут в back?
источник

AE

Alexey Egorov in Lisp Forever
Просто identity?
источник

A

Aragaer in Lisp Forever
нет
источник

A

Aragaer in Lisp Forever
back это не моя функция
источник

A

Aragaer in Lisp Forever
в back мне схема засунула функцию "вернуться обратно на call/cc"
источник

AE

Alexey Egorov in Lisp Forever
call/cc на топлевеле — свой собственный континуейшон?
источник