Version française
Home     About     Download     Resources     Contact us    
Browse thread
As-binding #-types
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Francois Rouaix <Francois.Rouaix@i...>
Subject: Re: As-binding #-types/Evaluation order & State

Dear Frank,

about the evaluation order question:

> [this is bogus because of right-to-left order]
>  #let rec list_of_queue q =
>  #  try Queue.take q :: list_of_queue q with Queue.Empty -> []

I would have written

let rec list_of_queue q =
  try
    let h = Queue.take q in 
       h::list_of_queue q
  with
    Queue.Empty -> []

in this case, which seems pretty natural.

In general, if I have a doubt about consequences of evaluation order on the
state, say for:
   ef e1 e2 en

I'd write (assuming I want left-to-right order of course)
   let f = ef  in
   let x1 = e1 in
   ...
   let xn = en in
     ef x1 ... xn

Or did I miss something ?


-- 
Francois.Rouaix@inria.fr                   Projet Cristal - INRIA Rocquencourt
Programming is dreadfully impermanent;  it's more like performance art
than literature -- Bruce Sterling (dixit Wired)