[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