guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

C++ declaration style programming?


From: Han-Wen Nienhuys
Subject: C++ declaration style programming?
Date: Tue, 20 Jan 2004 23:17:34 +0100

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.

I would like to have some macro, where I can write the Scheme analogon
like

 (begin-let*
  (def var1 (something))
  (set! var1 (+ var1 2))
  (def var2 (something var1))
  (set! var2 (+ var2 var1))
  (def var3 (something var1 var2))
  ...  )


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 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]