- Схема Как понять Продолжения?, Аноним, 21:27 , 02-Янв-25 (1)
Вбивай вопросы вроде этого в GPT.
- Схема Как понять Продолжения?, Аноним, 05:23 , 03-Янв-25 (5)
> Вбивай вопросы вроде этого в GPT.GPT не заменит отсутствующего комьюнити. И да, он отвратительно пишет схемокод. Понимать вроде понимает, но там, где можно в макросах обойтись символами, синтаксическими объектами или использовать какие-то другие схемофишки, он пишет так, как будто это питон.
- Схема Как понять Продолжения?, Аноним, 05:01 , 03-Янв-25 (3) +1
Если call-with-current-continuation, рассматривай как сохранения в игре. Оно сохраняет весь "стейт игры" (на самом деле, весь фрейм и биндинги) на момент перед новым действием после формы call/cc и внутри лямбды в call/cc ты можешь либо сразу загрузить этот стейт, типа кнопки быстрой загрузки автосохраниния, либо этот стейт схоронить в переменную повыше уровнем (а это уже не быстрое сохранение, а как слоты сохранения в играх), продолжить работу, выйти за рамки call/cc и, например, в случае, если что-то пойдёт не так, загрузить свой стейт назад. На последнем случае легко можно backtracking реализовать.Примеры хотелось бы сделать, но в пять утра и на телефоне без емакса неохота рисовать. Может, потом. Если delimited continuations, надо читать статьи Олега Киселёва и потихоньку на практике трогать. Если хочешь понять CPS, сперва стоит поаутировать с лямбдами, это комбинаторы и introduction to functional programming mike gordon'а.
- Схема Как понять Продолжения?, blevakagmail.com, 16:36 , 09-Янв-25 (6)
> Если call-with-current-continuation, рассматривай как сохранения в игре. Да, через про это, большое спасибо
- Схема Как понять Продолжения?, Аноним, 05:20 , 03-Янв-25 (4) +1
> (define (range start end) > (if (> start end) > (list) > (cons start (range (+ > start 1) end)))) У тебя не работает хвостовая рекурсия. Если в твой ренж пойдет большой диапазон, он взорвёт память. Хотя, конечно, большие списки и так не стоит делать, но всё же рассмотри вот такое: (define (range start end) (let loop ((cur end) (acc '())) (if (< cur start) acc (loop (- cur 1) (cons cur acc))))) Вообще, стоило бы мне выучить unfold из srfi-1, оно должно помогать с тем, чтобы аналоги iota реализовывать. С другой стороны, мне на схеме писать нечего и всё тлен. Вот когда начну писать что-то стоящее, тогда и выучу.
|