From: jim.rauser@sdm.de
To: caml-list@inria.fr
Subject: Format.sprintf and "%a"
Date: Thu, 23 Nov 2000 12:54:18 +0100 [thread overview]
Message-ID: <C9A98ED35114D31197D000805FEA668E02650F9F@mucexch.muc.sdm.de> (raw)
Hello,
I'm teaching myself Ocaml and have run up against a problem I can't
solve in connection with the format module. For many of the types
in my code, I have defined pretty-printing functions with type
(Format.formatter -> <type> -> unit), e.g.,
type foo = Foo | Bar
let fmt_foo f x =
match x with
Foo -> Format.fprintf f "Foo"
| Bar -> Format.fprintf f "Bar"
in
Format.printf "Test: %a@." fmt_foo Foo
Works great, but when I try it with sprintf, I get the following:
let s = Format.sprintf "Test: %a@." fmt_foo Foo
This expression has type
((Format.formatter -> foo -> unit) -> foo -> unit,
Format.formatter, unit)
format
but is here used with type
((Format.formatter -> foo -> unit) -> foo -> unit,
unit, string)
format
[Note: I retyped these examples by hand, I hope they're accurate.]
I can see the correlation of the signatures in the error message to
those of fprintf and sprintf in Format.mli, but the type magic that
seems to be occuring in the implementation of the Format modules
is beyond me. Can someone explain what is going on here? Is
there a way to use my formatting functions with sprintf?
Thanks, Jim
------------------------------------------------------------------------
Jim Rauser mailto:rauser@qcentic.de
Qcentic GmbH
Max-Planck-Str. 39a Tel: 02234/950 36 16
D-50858 Koeln Fax: 02234/27 19 17
next reply other threads:[~2000-11-23 12:42 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-11-23 11:54 jim.rauser [this message]
2000-11-23 12:42 ` Pierre Weis
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=C9A98ED35114D31197D000805FEA668E02650F9F@mucexch.muc.sdm.de \
--to=jim.rauser@sdm.de \
--cc=caml-list@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