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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 523ABBBAF for ; Tue, 26 Oct 2010 18:04:26 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AskAAEeZxkyGnQCBkWdsb2JhbACDH54uFQEBAQEJCwoHEQMfrmWSE4EigzJ0BI1b X-IronPort-AV: E=Sophos;i="4.58,241,1286143200"; d="scan'208";a="64106592" Received: from shiva.jussieu.fr ([134.157.0.129]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 26 Oct 2010 18:04:10 +0200 Received: from hydrogene.pps.jussieu.fr (hydrogene.pps.jussieu.fr [134.157.168.1]) by shiva.jussieu.fr (8.14.4/jtpda-5.4) with ESMTP id o9QG408r037524 ; Tue, 26 Oct 2010 18:04:01 +0200 (CEST) X-Ids:165 Received: from [134.157.168.107] (bohrium.pps.jussieu.fr [134.157.168.107]) by hydrogene.pps.jussieu.fr (8.13.4/jtpda-5.4) with ESMTP id o9QG3xpZ020013 ; Tue, 26 Oct 2010 18:03:59 +0200 Subject: Re: [Caml-list] type inference problem with Printf.sprintf ? From: Mathias Kende To: Emmanuel Dieul Cc: caml-list@yquem.inria.fr In-Reply-To: <4CC6F9E9.9090003@free.fr> References: <4CC6F9E9.9090003@free.fr> Content-Type: text/plain; charset="UTF-8" Date: Tue, 26 Oct 2010 18:04:02 +0200 Message-ID: <1288109042.11135.77.camel@bohrium.pps.jussieu.fr> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 8bit X-Miltered: at jchkmail.jussieu.fr with ID 4CC6FBF1.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 4CC6FBF1.000/134.157.168.1/hydrogene.pps.jussieu.fr/hydrogene.pps.jussieu.fr/ X-Spam: no; 0.00; inference:01 printf:01 sprintf:01 0200,:01 printf:01 sprintf:01 mathias:98 mathias:98 1900:98 unix:01 unix:01 caml-list:01 int:01 argument:02 argument:02 Le mardi 26 octobre 2010 à 17:55 +0200, Emmanuel Dieul a écrit : > let format_date = > let format_valeur = function valeur -> > (if valeur < 10 then "0" else "") ^ (string_of_int valeur) > in > function date -> > Printf.sprintf "%s/%s/%l %s:%s:%s" > format_valeur(date.Unix.tm_mday) > (format_valeur(date.Unix.tm_mon + 1) : string) > (date.Unix.tm_year + 1900) > (format_valeur(date.Unix.tm_hour) : string) > (format_valeur(date.Unix.tm_min) : string) > (format_valeur(date.Unix.tm_sec) : string) > ;; > Here, the argument to the Printf.sprintf function are : "%s/%s/%l %s:%s:%s", format_valeur, date.Unix.tm_mday, ... Just add parenthesis around (format_valeur date.Unix.tm_mday) (but without any type annotation) to pass the _result_ of this application to the sprintf function. You don't need parenthesis around the argument of the function though. Mathias