From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id TAA24275; Fri, 14 Jun 2002 19:40:35 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id TAA24074 for ; Fri, 14 Jun 2002 19:40:34 +0200 (MET DST) Received: from cantina.students.cs.unibo.it (cantina.students.cs.unibo.it [130.136.3.110]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g5EHeXP24424 for ; Fri, 14 Jun 2002 19:40:33 +0200 (MET DST) Received: from lordsoth.takhisis.org ([130.136.32.148]) (authenticated (0 bits)) by cantina.students.cs.unibo.it (8.12.0.Beta19/8.12.0.Beta19/Debian 8.12.0.Beta19) with ESMTP id g5EHeRGx009271 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=192 verify=FAIL) for ; Fri, 14 Jun 2002 19:40:33 +0200 Received: from lordsoth.takhisis.org (lordsoth.takhisis.org [127.0.0.1]) by lordsoth.takhisis.org (8.12.4/8.12.4/Debian-2) with ESMTP id g5EHeQhe031742 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Fri, 14 Jun 2002 19:40:26 +0200 Received: (from zack@localhost) by lordsoth.takhisis.org (8.12.4/8.12.4/Debian-2) id g5EHeQNh031740 for caml-list@inria.fr; Fri, 14 Jun 2002 19:40:26 +0200 Date: Fri, 14 Jun 2002 19:40:26 +0200 From: Stefano Zacchiroli To: caml-list@inria.fr Subject: Re: [Caml-list] static variables in a function Message-ID: <20020614174026.GA31686@cs.unibo.it> Mail-Followup-To: caml-list@inria.fr References: <20020614170830.28193.qmail@web10705.mail.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020614170830.28193.qmail@web10705.mail.yahoo.com> User-Agent: Mutt/1.4i Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Fri, Jun 14, 2002 at 10:08:30AM -0700, Shannon --jj Behrens wrote: > Hi, > > What is the correct OCAML idiom for achieving the > following psuedocode? > > let get_chunk () = > static chunks_list; > > if List.is_empty chunks_list > then chunks_list = get_more_chunks (); > shift chunks_list > ;; an approximation (not tested) may be: let chunks_list = ref [] in let get_chunk () = if List.is_empty !chunks_list then chunks_list := get_more_chunks (); shift !chunks_list in (* code where you use get_chunk *) Cheers. -- Stefano Zacchiroli - undergraduate student of CS @ Univ. Bologna, Italy zack@cs.unibo.it | ICQ# 33538863 | http://www.cs.unibo.it/~zacchiro "I know you believe you understood what you think I said, but I am not sure you realize that what you heard is not what I meant!" -- G.Romney ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners