Hi all,

I'm happy to announce my first egg: Stacktor.

Stacktor is a DSL for programming in a stack based style, like languages such as Forth or Factor. The idea came from a talk at my local Ruby user's group by Slava Pestov on Factor. While I know Slava likes Lisp/Scheme, he made an offhand joke about Lisp, and I felt obligated to show that the Lisp/Scheme world can do stack based programming too.

Here's a real quick example. Let's say we want to find all the squares of a list that are larger than a given value. In a functional style, we'd either have to write it "backwards" or use a lot of intermediate bindings. We can skip both with in stack programming:

  (begin-stack
    9
    '(1 2 3 4 5)
    (push (lambda (x) (* x x)))
    map
    stk-swap
(lambda (x) (lambda (y) (> y x))) ;; returns a function that will be pushed on the stack
    filter
    )
=> (stack 16 25)

I won't bore you with a lot details. Feel free to hit me up if you have more questions.

Cheers,
-Mark




_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to