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 nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id AC54EBB9A for ; Fri, 28 Oct 2005 12:21:48 +0200 (CEST) Received: from out3.smtp.messagingengine.com (out3.smtp.messagingengine.com [66.111.4.27]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j9SALlb7022130 for ; Fri, 28 Oct 2005 12:21:48 +0200 Received: from frontend1.internal (mysql-sessions.internal [10.202.2.149]) by frontend1.messagingengine.com (Postfix) with ESMTP id 535E0CD8A9D for ; Fri, 28 Oct 2005 06:21:46 -0400 (EDT) Received: from web2.messagingengine.com ([10.202.2.211]) by frontend1.internal (MEProxy); Fri, 28 Oct 2005 06:21:46 -0400 Received: by web2.messagingengine.com (Postfix, from userid 99) id 3B789759; Fri, 28 Oct 2005 06:21:43 -0400 (EDT) Message-Id: <1130494903.8339.246224558@webmail.messagingengine.com> X-Sasl-Enc: xBK+ddNgAIaes7UHwPuAbF76v+XO6WON6lzBihN00XSk 1130494903 From: "Tato Thetza" To: caml-list@yquem.inria.fr Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="ISO-8859-1" MIME-Version: 1.0 X-Mailer: MIME::Lite 1.5 (F2.73; T1.15; A1.64; B3.05; Q3.03) Subject: OCaml efficiency/optimization? Date: Fri, 28 Oct 2005 03:21:43 -0700 X-Miltered: at nez-perce with ID 4361FBBB.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; ocaml:01 ocaml:01 immutable:01 caml:02 somewhere:02 optimization:03 optimization:03 docs:05 inria:05 linked:06 efficient:06 efficiency:07 documented:10 question:11 definitely:11 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=DNS_FROM_RFC_ABUSE, FORGED_RCVD_HELO autolearn=disabled version=3.0.3 I've been reading over http://caml.inria.fr/pub/docs/manual-ocaml/index.html and have learned two things: -lists are immutable and singly linked, which explains why 1::[2;3] is valid while [2,3]::1 is not, and why its efficient. -the proper way to ensure tail-recursive optimization question: are these and other optimizations documented somewhere officially? I find it a little uncomfortable I've been learning OCaml without knowning such internal details. Any secrets I should definitely know if I were to use this language in production? thanks, Tato Thetza