Вашему вниманию предоствляется следующий тест-кейс: порт макроса из Лиспа (progn (), (), ...()) в AS3

Пример:

Код AS3:
package
{
import flash.display.Sprite;
import tld.wvxvw.lasp.collect;
import tld.wvxvw.lasp.Lasp;
import tld.wvxvw.lasp.nth;
import tld.wvxvw.lasp.progn;
import tld.wvxvw.lasp.value;
/**
* ...
* @author wvxvw
*/
public class TestProgn extends Sprite
{
public function TestProgn()
{
super();
this.testProgn();
}
private function testProgn():void
{
trace (value
(nth (collect
(progn (trace, "testing...", 123)
(trace, "second round", 456)
(trace, "third", 789)(isNaN, 100)
(trace, /foo/g)), 4)));
}
}
}
Отредактировано для полноты эффекта
))
Последняя редакция. Остальные исходники можно посмотреть тут:
http://pastebin.com/kF5RazSV