Retro is a concatenative, stack based language with roots in Forth.
It is designed to be small, easily learned, and easily modified to meet specific needs, it has been developed and refined through continual use by a small community over the last decade.
This blog is written in Retro and has served as my primary means of posting things concerning Retro since 2010. The core code for Corpse is included in the Retro releases and can be freely studied and deployed.
The most recent posts are shown below. You can also view a list of all posts.
2010-11-19
After some encouragement from foucist in the #retro irc channel, a couple of each combinators were added. Specifically, we had three combinators:
These have been replaced by a new each@ combinator.
The new combinator replaces these, and adds support for zero terminated strings as well. This is done by the use of type constants, which we are now using for things like this. As an example:
( old ) "hello, world!" withLength [ @ emit ] buffer.each ( new ) "hello, world!" [ @ emit ] STRING each@
If these experiments with type constants prove successful, other combinators will likely use them in the future. One thing being considered is a types' vocabulary to store the constants; this would help keep the global dictionary clean, and still allow easy access as needed.