[racket] Architecture advice for new project

From: Chad Albers (calbers at neomantic.com)
Date: Tue May 15 13:42:21 EDT 2012


I'm working on project to port the Ruby Rack framework to Racket scheme.
If you're not familiar with Rack,  it creates a layer to manage the http
response/requests, and a level of abstraction to build a chained list of
middle ware clients - each calling the next in chain.

Switching from from Ruby's OOP paradigm to Scheme's more functional
paradigm, a problem has presented itself that I would like some advice on.

In the Rack middleware in the chain, each piece of the middleware receives
a hash which encapsulates the response/requests, and the middleware mutates
this hash depending on the functionality it adds.

I could port this hash exchange in my Racket implementation, but I have an
aversion to the side effects inherently in mutating this hash.   My
question, then, is does anyone have a more functional approach to how I
could implement this middleware chain?

Any advice anyone could offer would be greatly appreciated.  I'm going to
open sourcing the project soon.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20120515/43994916/attachment.html>

Posted on the users mailing list.