From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 3ACDCBC32 for ; Thu, 17 Mar 2005 20:15:20 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j2HJFJi3008794 for ; Thu, 17 Mar 2005 20:15:20 +0100 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 UAA04021 for ; Thu, 17 Mar 2005 20:15:19 +0100 (MET) Received: from qrnik.knm.org.pl (paf87.warszawa.sdi.tpnet.pl [217.96.225.87]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j2HJFHYW008784 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Thu, 17 Mar 2005 20:15:19 +0100 Received: from qrczak by qrnik.knm.org.pl with local (Exim 3.36 #1) id 1DC0Sj-0004En-00 for caml-list@inria.fr; Thu, 17 Mar 2005 20:15:17 +0100 To: caml-list@inria.fr Subject: Re: [Caml-list] OCaml troll on Slashdot X-Face: OW>RV&gN+&b-aiNY|U)f=S%w+/rK!);f>/W9IXg})]&F>ht.1Up8@04+_!gOp(_/l_-+E^. 2\vI)1=D,%HWiq)r(M/V~dr^5T^KF/[w5YZ4<0Sus3+O>l3uA/&W_21m?.s,Po8{pb0@ References: <20050316001819.GB347@first.in-berlin.de> <891bd33905031619484825e276@mail.gmail.com> <200503171016.18310.jon@ffconsultancy.com> From: "Marcin 'Qrczak' Kowalczyk" Mail-Followup-To: caml-list@inria.fr Date: Thu, 17 Mar 2005 20:15:17 +0100 In-Reply-To: (brogoff@speakeasy.net's message of "Thu, 17 Mar 2005 10:06:45 -0800 (PST)") Message-ID: <87acp213ui.fsf@qrnik.zagroda> User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: "Marcin 'Qrczak' Kowalczyk" X-Miltered: at concorde with ID 4239D747.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 4239D745.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 ocaml:01 ocaml:01 caml-list:01 bignums:01 int's:01 stack:01 recursion:01 recursion:01 stack:01 bignums:01 writes:01 arbitrary:01 extensible:01 slower:01 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=disabled version=3.0.2 X-Spam-Level: brogoff writes: > Also, as I state above, the number is arbitrary, and having OCaml > choke at some particular size rather than letting me use large lists > violates that least surprise principle. I had an offline discussion > recently with another caml-list person in which he told me that he > wished OCaml used Bignums instead of int's by default. I disagree, > but I don't think it's a dumb idea. The behavior of the standard > List functions is worse IMO. Maybe the standard Lisp.map should be > named List.unsafe_map (1/2 :-))? It's not the fault of the mapping function but of the stack being non-extensible. A user-written recursion can blow it too. Functional programming is supposed to encourage recursion, and a non-tail-recursive 'map' is much more readable than alternatives. My implementation of my language Kogut has extensible stack. And transparent bignums when appropriate. Yes, it's slower, but correctness is more important. -- __("< Marcin Kowalczyk \__/ qrczak@knm.org.pl ^^ http://qrnik.knm.org.pl/~qrczak/