Dear all,

I am new to Racket and only slightly less new to scheme & scheme-like

I have noticed myself often doing something like the following:

(define (foo x)
  (let* ([y (f x)]
         [z (g y)]
         [p (h z)])
    (bar p)))

Which could, of course, be written as

(define (foo x)
  (bar (h (g (f x)))))

Here's an example from something I was just working on:

(define (get-data input)
  (let* ([url-string (construct-url input)]
         [url (string->url url-string)]
         [port (get-pure-port url)])
    (read-json port)))

which, again, could be written as:
(define (get-data input)
  (read-json (get-pure-port (string->url (construct-url input)))))

My question is: is the way I'm writing things considered to be bad
style?  It feels like a hangover from more imperative-style programming
& the inclination to do one thing "per line".  On the other hand, it
often helps readability.

It might be, of course, that both versions amount to the same thing
after the interpreter has been at them.

Thanks and regards,
Bob Heffernan

You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
For more options, visit

Reply via email to