R6RS macros with positional and optional arguments

[Makers] is a distribution of libraries for R6RS Scheme implementations. In the paper:

Keyword and Optional Arguments in PLT Scheme“. Matthew Flatt and Eli Barzilay. 2009 Workshop on Scheme and Functional Programming.

the authors discuss ways to provide functions and macros with a mix of fixed and optional arguments to better organise abstractions. This package humbly proposes an alternative for R6RS implementations, without the use of “keywords” as disjoint type of values.

(via comp.lang.scheme)

A Scheme Developers Almanac for RNRS

In the early 2000s Sun published The Java Developers Almanac. It was a basically a listing of code snippets explaining how to perform the most common operations that developers might want to accomplish at his “day job”. You can find examples of the examples here.

It was great for the language; it made it easy for loads of developers to get productive quickly. While something like this can certainly be abused via copy-and-paste; you can also use it to learn. Hopefully a lot of developers did learn. I wonder if something like this would be interesting for the RNRS world?

The reason is that the revised reports are just that: reports. They are not standards in the sense of the Common Lisp standard. Rather they are a report of the commonalities across different Scheme implementations.

The features provided by R6RS make it is a tad more convenient to write “portable” code. In light of that, I wonder if it would be of any value to have a sort of Scheme developers almanac written only using R6RS code for example. Things like this exist today with Schemewiki, and nearly every individual distribution, but, it might be nice to see how much you can do with only what the report provides along with the libraries that folks have implemented on top of it.

Tachy Scheme

Tachy is a Scheme-like (R5RS is the template, but not the goal) language that is being developed in C# for the .NET framework and is made available as Open Source (BSD License). The current implementation is an interpreter, and a compiler is planned. The primary focus for Tachy is for programming language learning & experimentation, and an attempt has been made to keep the code as small(currently under 1000 lines) and straightforward as possible.

(via StackOverflow)

Box2D Lite: A Scheme Physics Engine

(via ikarus)

Box2D is a physics engine written in C++ by Erin Catto:

http://www.box2d.org/

Box2D Lite is a simplified version that he posted to his blog once upon a time.

I’ve ported Box2D Lite to Ikarus. Here it is running the pyramid demo:

http://imgur.com/aXAY4

That’s a screenshot of the very first successful run. 🙂

Of course, I’ll be happy to release the code once the performance is cranked a bit.

Ed