From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id E506CBC57 for ; Tue, 31 Aug 2010 00:43:47 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqABAIfRe0zRVdU2kGdsb2JhbACgYggVAQEBAQkJDAcRAx+kL4knghOGJy6IVAEBAwWFMgSEO4VOiE8 X-IronPort-AV: E=Sophos;i="4.56,294,1280700000"; d="scan'208";a="68389815" Received: from mail-yw0-f54.google.com ([209.85.213.54]) by mail4-smtp-sop.national.inria.fr with ESMTP; 31 Aug 2010 00:43:46 +0200 Received: by ywt2 with SMTP id 2so2853345ywt.27 for ; Mon, 30 Aug 2010 15:43:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=hQEsmcD4qp4Z2G+f9SjXQYo7c2O9Jk8HMpS1w1eyLTQ=; b=x37BRIOq4PVN+s8b8vpr3cvNbbdtwvxRo4xHUJZAkghEMzq8TRT0vTgl18730SR/VN B4/m+XsH7JWEU6n1mIeco5G+GvFxIWMUcmk9eX+DoAMo3+x1om6V7jyHwOC2oXZC9WbM crT8IzpTEbbeHmjGY5Jdja1nBhtobs6DwTX94= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=I/7nraRo9Bl6TtxObTKz9M8dOgRSLCCwG3iyc2d8TWeiJre+MOxGri9Wbv1/JWNsZ8 vUS5erqURpXkm0ixsy8GOOSyM6lFVem7aMYcjJDVrEWVR9TaiiciwHpBci0/SzztKXtb bw8bsXVSer1N5fQBQeuqMO/UFMAMh5bV9mwJQ= MIME-Version: 1.0 Received: by 10.150.32.11 with SMTP id f11mr728510ybf.146.1283208222696; Mon, 30 Aug 2010 15:43:42 -0700 (PDT) Sender: mikemmchen@gmail.com Received: by 10.231.39.196 with HTTP; Mon, 30 Aug 2010 15:43:40 -0700 (PDT) Date: Mon, 30 Aug 2010 15:43:40 -0700 X-Google-Sender-Auth: xQyiXHTHxniVUvGlyJde0ITsGPE Message-ID: Subject: While loop From: Mike Chen To: caml-list@inria.fr Content-Type: text/plain; charset=ISO-8859-1 X-Spam: no; 0.00; val:01 int:01 int:01 append:02 caml:02 seems:03 let:03 let:03 nth:05 function:08 fun:08 wrong:10 returns:11 loop:13 loop:13 Hi, I am a caml rookie, and I need your help. (* pp is a very simple function *) # let pp list = let newList = ref [] in let i = ref 0 in let ele = ref (List.nth list !i) in while (!ele) != 5 do newList := List.append !newList [(!ele mod 3)]; i := !i + 1; done; !newList;; val pp : int list -> int list = # pp [ 3; 4; 5];; (* it seems it goes into a forever loop, but I expect it returns [ 0; 1]. What is wrong? *) Thanks, Mike