From: "Sylvain LE GALL" <sylvain.le-gall@polytechnique.org>
To: Pierre Weis <pierre.weis@inria.fr>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Printf and format
Date: Sat, 5 Jul 2003 14:07:14 +0200 [thread overview]
Message-ID: <20030705120714.GA8202@gallu> (raw)
In-Reply-To: <200307051026.MAA02389@pauillac.inria.fr>
On Sat, Jul 05, 2003 at 12:26:49PM +0200, Pierre Weis wrote:
> > Hello,
> >
> > I am sorry to ask a so silly question, but i need it for my personnal
> > work, and i could not find it in the archive.
> >
> > Is there a way to transform string to ( 'a, out_channel, unit, unit)
> > format. I need this function to use it with something like :
> >
> > Printf.printf (my_fun "X, Y") "coucou";;
> >
> > I look at the code and see a function scan_format, but it seems to be
> > forbid to use it.
> >
> > Any idea ?
> >
> > Thanks
> > Sylvain LE GALL
>
> As once announced on this list, the new release of Objective Caml will
> introduce a lot of novelty on the format type.
>
> Besides new convertion specifiers that you could find in the Printf
> and Scanf documentation (C, S, B, F, !, ...), there are now several
> different new functionalities provided by the new compiler which are
> relevant to your question:
>
> 0) converting arbitrary format string to a regular strings
>
> 1) converting CONSTANT strings to the corresponding constant format string
>
> 2) concatenating format strings (very often feature 0 and 1 are used
> in conjonction just to implement format strings concatenation).
>
> Back to your problem: the features described here may your for some
> ``my_fun'' functions, but the general case is not properly covered by
> them. What we need is a general function that reads a format from
> within a string that is NOT a constant. This is a kind of dynamic
> convertion reminiscent of int_of_string or float_of_string, that
> checks that the string can be indeed considered as an integer of
> floatting point number.
>
> I propose (and have implemented for my own programming of a general
> translation function) a new function [read_format], such that
>
> [read_format pat s] returns the string [s] as a format string that has
> the same type (hence the same ``printf meaning'') as [pat], the first
> format string argument.
>
> For instance,
>
> read_format "The number %d is odd" "Le nombre %d est impair"
>
> returns "Le nombre %d est impair" as a format string with the same
> type as "The number %d is odd".
>
> This function is more general that the one above since now in
> [read_format pat s] the string [s] is not mandatorily an immediate
> string constant: it can be obtained from an arbitrary computation, as
> read from a file.
>
> The Typechecking of read_format would be:
>
> read_format :
> ('a, 'b, 'c, 'd) format -> string -> ('a, 'b, 'c, 'd) format
>
> If considered useful, this function could be added, for instance as
> part of a new internationalization module.
Hello,
you read my mind. Indeed, the question concern an internationalization
module ( let's call libgettext-ocaml ). It is basically a binding of
gettext.
But, for handling certain apsect of gettext it needs printf like
capability. But the printf like capibility, as printf, use a non constant
string ( returned by a function dngettext... or so ). That's the reason
why i am looking after something which correpsond to this things.
If people at INRIA could include some kind of read_format, it could be
very useful.
Thanks a lot
Sylvain LE GALL
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next prev parent reply other threads:[~2003-07-05 12:07 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-03 16:38 Sylvain LE GALL
2003-07-05 10:26 ` Pierre Weis
2003-07-05 12:07 ` Sylvain LE GALL [this message]
2003-07-06 10:35 ` Xavier Leroy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030705120714.GA8202@gallu \
--to=sylvain.le-gall@polytechnique.org \
--cc=caml-list@inria.fr \
--cc=pierre.weis@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox