Teach Yourself Scheme in Fixnum Days (2015)
ds26gte.github.io
ds26gte.github.io
Overall it is good and concise.
Shouldn't it be : "The current continuation at any point in the execution of a program is an abstraction of the rest of the execution of the program." ?
Is my Google-fu failing me? Does anyone have a link to an explanation that doesn't require a bachelor in maths to understand?
Also it allows you to write a threading implementation like coroutines in another section below.
Generally it does this: you have a process, say that does A, B, C, D and E. You let it run and save it at, say "C". The continuation is the rest of the process, "D" and "E". So now you go and do something else, say a process from J to U. Somewhere in there, you can whip out your continuation and it does "D" and "E". You are simply bookmarking something to do later because you gotta go do something else.
In coroutines, you run one, stop and save the continuation and switch to another, run, stop, save and switch, and so on and so on, and then jump back and resume the original etc.
It is a low level construct that can be used to build higher abstractions and things like coroutines. In a language like scheme they can also be a (costly) way to do early escapes.
If you are into nondeterminism they are also quite usable.
call/cc is being retired in favour of delimited continuations, which is a good thing.
Most often you don't need them. Implementing things like generators using continuations is possible, but it is also a lot slower than built in support for generators.
Currently I'm thinking about Kawa for Android, maybe Bigloo for Windows (.NET) and Gambit for everything else. And I start to wonder how different implementations have different properties even among compiled ones.
Edit: a typo: s/Kiwi/Kawa/
Most often you pick one implementation and stick with it. Scheme is not like CL where you can run the same program on many different implementations without much fuss.
Chicken is a very nice implementation with the most friendly IRC channel on freenode.
There is nothing "mathy" about continuations to my understanding. They are like GOTO, a low-level construct which can be used to implement higher-level constructs which are more appropriate in regular applications. Basically, continuation captures the program counter (the address of the current instruction) and the current environment and stack. This allows you to "save" (like in a computer game) the current execution state, and then restore it as needed.
https://manual.calibre-ebook.com/generated/en/ebook-convert....
ebook-convert input_file output_file [options]
And there isn't very much impedance mismatch between mobi and epub, so the conversion back and forth between the two will almost always be high quality.