[Fluxus] lsystem example
Dave Griffiths
dave at pawfal.org
Thu Nov 29 02:51:06 PST 2007
> hi Dave,
>
> suggestion:
>
> On Nov 29, 2007 12:50 AM, Dave Griffiths <dave at pawfal.org> wrote:
>> (cond
>> ((char=? #\F char)
>> (with-state
>> (translate (vector 0.5 0 0))
>> (scale (vector 1 0.1 0.1))
>> (build-cube))
>> (translate (vector 1 0 0)))
>> ((char=? #\f char)
>> (translate (vector 1 0 0)))
>> ((char=? #\/ char)
>> (rotate (vector angle 0 0)))
>> ((char=? #\\ char)
>> (rotate (vector (- angle) 0 0)))
>> ((char=? #\+ char)
>> (rotate (vector 0 angle 0)))
>> ((char=? #\- char)
>> (rotate (vector 0 (- angle) 0)))
>> ((char=? #\^ char)
>> (rotate (vector 0 0 angle)))
>> ((char=? #\& char)
>> (rotate (vector 0 0 (- angle))))
>> ((char=? #\| char)
>> (rotate (vector 0 0 180)))
>> ((char=? #\[ char)
>> (push)
>> (scale (vector branch-scale branch-scale branch-scale)))
>> ((char=? #\] char)
>> (pop))))
>
>
> this would have been even cleaner with (case char ...)
yes - I haven't really used case, is it part of r*rs?
one of the particular things about scheme is that is seems to grow around
you :)
cheers,
dave
More information about the Fluxus
mailing list