I have a few notes unrelated to those I've already mentioned in the thread.
1. Guile already has curried definitions in (ice-9 curried-definitions) 2. By turning your functions definitions into a macro, you've lost the ability to use them in a first class manner. 3. I would strongly recommend _not_ using define-macro, and even more so, not mixing define-macro and syntax-rules in a macro. Syntax-case is as powerful as defmacro, and in most practical cases, about as much writing. 4. What your macro does is not currying, it is partial application. Those are different things. Currying refers to the process of turning a function of n arguments into an n-nested set of 1 argument functions. Partial application is, well, not supplying all the arguments to a function. You can have partial application without currying, as your macro shows. -- Ian Price -- shift-reset.com "Programming is like pinball. The reward for doing it well is the opportunity to do it again" - from "The Wizardy Compiled"