From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 843E1BC9F for ; Wed, 10 Aug 2005 09:38:37 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j7A7cbJQ010085 for ; Wed, 10 Aug 2005 09:38:37 +0200 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA12869 for ; Wed, 10 Aug 2005 09:38:34 +0200 (MET DST) Received: from m14s26.vip-server.net (m14s26.vip-server.net [193.138.181.188]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j7A7cXc7010060 for ; Wed, 10 Aug 2005 09:38:34 +0200 Received: from [127.0.0.1] (localhost [127.0.0.1]) by m14s26.vip-server.net (Postfix) with ESMTP id 0198F95CCD for ; Wed, 10 Aug 2005 09:28:24 +0200 (CEST) Message-ID: <42F9AEF4.20204@gaillourdet.net> Date: Wed, 10 Aug 2005 09:38:28 +0200 From: Jean-Marie Gaillourdet User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050727) X-Accept-Language: de-DE, de, en-us, en MIME-Version: 1.0 To: caml-list@inria.fr Subject: Re: [Caml-list] right-associating infix application operator camlp4 extension References: <7B0AADBE-23D8-4C63-ABE7-75360C874E13@lrde.epita.fr> <873bpi2tx7.wl%osiire@k8.dion.ne.jp> In-Reply-To: <873bpi2tx7.wl%osiire@k8.dion.ne.jp> X-Enigmail-Version: 0.92.0.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 42F9AEFD.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 42F9AEF9.003 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 infix:01 hash:01 val:01 val:01 associative:01 einstein:98 clearer:01 behaviour:01 simpler:01 int:01 int:01 types:02 gnu:03 string:03 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, osiire@k8.dion.ne.jp schrieb: > Maybe "@" and "^" are right-associated. > > # let ( ^$ ) f x = f x;; > val ( ^$ ) : ('a -> 'b) -> 'a -> 'b = > # print_string ^$ List.fold_left (fun x sum -> sum ^ x) "" ^$ ["1";"2";"3"];; > 321- : unit = () > > # let ( @$ ) f x = f x;; > val ( @$ ) : ('a -> 'b) -> 'a -> 'b = > # print_string @$ List.fold_left (fun x sum -> sum ^ x) "" @$ ["1";"2";"3"];; > 321- : unit = () I think this peace of code make the distinction clearer. # let (^) a b = a,b;; val ( ^ ) : 'a -> 'b -> 'a * 'b = # let (-) a b = a,b;; val ( - ) : 'a -> 'b -> 'a * 'b = Compare the types of the following to expressions: # 1 - 2 - 3;; - - : (int * int) * int = ((1, 2), 3) # 1 ^ 2 ^ 3;; - - : int * (int * int) = (1, (2, 3)) # Is that kind of behaviour documented? I wasn't able to find it in the docs. Which other operator names are right associative? Jean-Marie Gaillourdet - -- "Make everything as simple as possible, but not simpler" (A. Einstein) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFC+a70NIUNP/I5YOgRAmFyAJ46rGSHwECUaSyT1ogA5TJoS7ZAuACfQUKS 5WsMn7EBLe4cBW6WQg+I5wk= =Yu3m -----END PGP SIGNATURE-----