[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: C++ declaration style programming?
From: |
Issac Trotts |
Subject: |
Re: C++ declaration style programming? |
Date: |
Tue, 20 Jan 2004 20:57:35 -0800 |
User-agent: |
Mutt/1.5.4i |
On Tue, Jan 20, 2004 at 11:17:34PM +0100, Han-Wen Nienhuys wrote:
>
> Hi there,
>
> I just realized that one of the things that I dislike about Scheme is
> that my habit of naming intermediate results (which I inherited from
> C++) leads to deep nesting.
>
> Usually in C++, I do
>
> int var1 = something ();
> int var2 = something (var1);
> int var3 = something (var1, var2);
> etc.
>
> in Scheme, this translates quite well to (let* ) :
>
> (let*
> ((var1 (something))
> (var2 (something var1))
> (var3 (something var1 var2)))
> .. )
>
> However, it doesn't work so well when I mix commands with
> declarations, eg.
>
>
> int var1 = something ();
> var1 += 2;
> int var2 = something (var1);
> var2 += var1;
> int var3 = something (var1, var2);
> etc.
Well, in this case you could do something more functional:
(define (something . x) 1)
(let*
((var1 (+ 2 (something)))
(var2 (+ (something var1) var1))
(var3 (something var1 var2)))
(display `(,var1 ,var2 ,var3)))
> This can presumably be done by writing a macro begin-let* that expands
> the statement list in a suitably nested let*
>
> However, I was wondering whether there exists a standard library
> syntax mechanism that lets me write code in this fashion.
>
> --
>
> Han-Wen Nienhuys | address@hidden | http://www.xs4all.nl/~hanwen
>
>
>
> _______________________________________________
> Guile-user mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/guile-user
--
Issac Trotts
http://redwood.ucdavis.edu/~issac