From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 9E5DF7FD3B for ; Sat, 21 Nov 2015 19:06:09 +0100 (CET) IronPort-PHdr: 9a23:LVKmRh0OB4EnVsiLsmDT+DRfVm0co7zxezQtwd8ZsekSI/ad9pjvdHbS+e9qxAeQG96LtrQa1KGG6OjJYi8p39WoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6kO74TNaIBjjLw09fr2zQd6PyZronLDps7ToICx2xxOFKYtoKxu3qQiD/uI3uqBFbpgL9x3Sv3FTcP5Xz247bXianhL7+9vitMU7q3cYk7sb+sVBSaT3ebgjBfwdVWx+cjN92Mq+lRTFQRGO5TM2VWIT2k5IDg7J9hD5dov2qiz78PJ63zDcNsrzG/R8Uj2n6+JvSQT0oCYBLT8wtm/N2fZ9lKZKnBX0ixVhwoKSXIyRMPdkVq7bZpYeVG1HGMFLWH9vGIS5OqcGEesNddxRrYL9ql0EpBC+QDWhAOfi0Hccqnbo3KF87+klFQzc9AEmBJcKoXPS6tLvO/FBAqiO0KDUwGCbPLtt0jDn5d2NK0h5rA== Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=David.Teller@ens-lyon.org; spf=None smtp.mailfrom=SRS0=nNwC=LY=ens-lyon.org=David.Teller@bounce.ens-lyon.org; spf=Pass smtp.helo=postmaster@sonata.ens-lyon.org Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of David.Teller@ens-lyon.org) identity=pra; client-ip=140.77.166.138; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=nNwC=LY=ens-lyon.org=David.Teller@bounce.ens-lyon.org"; x-sender="David.Teller@ens-lyon.org"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of SRS0=nNwC=LY=ens-lyon.org=David.Teller@bounce.ens-lyon.org) identity=mailfrom; client-ip=140.77.166.138; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=nNwC=LY=ens-lyon.org=David.Teller@bounce.ens-lyon.org"; x-sender="SRS0=nNwC=LY=ens-lyon.org=David.Teller@bounce.ens-lyon.org"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of postmaster@sonata.ens-lyon.org designates 140.77.166.138 as permitted sender) identity=helo; client-ip=140.77.166.138; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=nNwC=LY=ens-lyon.org=David.Teller@bounce.ens-lyon.org"; x-sender="postmaster@sonata.ens-lyon.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DNAAAzsVBWl4qmTYxeyT6EAzwQAQEBAQEBAQEQAQEBAQEIFgdPgi2CCAEFI1URCxgCAgUWCwICCQMCAQIBRQYBDAgBAYgqBK9lhlWJTIEBhVOEfod1gUQFllCpegI4hDCGHAEBAQ X-IPAS-Result: A0DNAAAzsVBWl4qmTYxeyT6EAzwQAQEBAQEBAQEQAQEBAQEIFgdPgi2CCAEFI1URCxgCAgUWCwICCQMCAQIBRQYBDAgBAYgqBK9lhlWJTIEBhVOEfod1gUQFllCpegI4hDCGHAEBAQ X-IronPort-AV: E=Sophos;i="5.20,328,1444687200"; d="scan'208";a="154661201" Received: from sonata.ens-lyon.org ([140.77.166.138]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/ADH-AES256-GCM-SHA384; 21 Nov 2015 19:06:08 +0100 Received: from localhost (localhost [127.0.0.1]) by sonata.ens-lyon.org (Postfix) with ESMTP id A64FF200CE; Sat, 21 Nov 2015 19:06:08 +0100 (CET) Received: from sonata.ens-lyon.org ([127.0.0.1]) by localhost (sonata.ens-lyon.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mb8Nw9U15rmf; Sat, 21 Nov 2015 19:06:08 +0100 (CET) Received: from Bigorneau-Ninja.local (unknown [88.189.211.192]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by sonata.ens-lyon.org (Postfix) with ESMTPSA id 066662009D; Sat, 21 Nov 2015 19:06:07 +0100 (CET) Reply-To: David.Teller@ens-lyon.org References: <0F7D3B1B3C4B894D824F5B822E3E5A172CE3E070@IRSMSX102.ger.corp.intel.com> <563C816B.7020604@inria.fr> <0F7D3B1B3C4B894D824F5B822E3E5A172CE3E0E1@IRSMSX102.ger.corp.intel.com> <20151121172401.GA31756@topoi.pooq.com> To: Hendrik Boom , caml-list@inria.fr From: David Rajchenbach-Teller Message-ID: <5650B27F.5000701@ens-lyon.org> Date: Sat, 21 Nov 2015 19:05:51 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:42.0) Gecko/20100101 Thunderbird/42.0 MIME-Version: 1.0 In-Reply-To: <20151121172401.GA31756@topoi.pooq.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Caml-list] Notation for currying As a side question, is currying really an important language feature? In my experience, it hinders readability and makes it harder to reason about types ("wait, is it weakly or strongly polymorphic? exactly which type variables were generalized?") After coding a number of years in languages without currying, I haven't found myself lacking this feature a single time. Cheers, David On 21/11/15 18:24, Hendrik Boom wrote: > On Fri, Nov 06, 2015 at 01:34:11PM +0100, Gabriel Scherer wrote: >> >> I personally believe that currified constructor syntax would be a better >> choice, and that using non-currified constructors is a historical mistake >> of SML/Caml. But I am also not convinced that efforts to change it today >> are worth the trouble, and prefer to concentrate on improving other parts >> of the OCaml ecosystem. > > Perhaps there should be explicit syntax for currying, such as > f a b _ > instead of > f a b > That would permit currying in other argument positions: > f a _ c > though I suspect _ may be the wrong symbol for the current language, and > I also suspect it's far too late tointroduce it in the current language. > > I have noticed that almost a the situations where the compiler thinks I > mean to curry I actually just left out a parameter by mistake. The type > inferences it makes based on these errors usually occur elsewhere and > are truly mystifying. > > -- hendrik >