You may also consider this: let prefixprint oc fmt = Printf.fprintf oc ("Prefix: " ^^ fmt) Best regards, Edouard 2016-08-12 13:51 GMT+01:00 Kakadu : > Micheal, > > Something lke this? > > let printfn fmt = kprintf (printf "%s\n") fmt > > Happy hacking, > Kakadu > > On Fri, Aug 12, 2016 at 3:44 PM, Soegtrop, Michael > wrote: > > Dear Ocaml Users, > > > > > > > > it is quite common to have wrappers for printf to e.g. print errors or > > warnings with some context. Prefixing is easy to do in OCaml (honestly it > > took me a short while to figure it out): > > > > > > > > let prefixprintf (oc : out_channel) (fmt : ('a, out_channel, unit) > format) : > > 'a = > > > > Printf.fprintf oc "Prefix: "; > > > > Printf.fprintf oc fmt > > > > ;; > > > > > > > > I wonder how I would postfix something. Even converting the formatted > output > > first to a string and then output it together with the postfix doesn’t > seem > > to be easy, because the formatting function must be the last call in the > > function, since it has to produce the returned function. Is there some > way > > to make a variadic lambda expression or some other magic to handle such > > cases? A similar question would be how I can print the same formatted > string > > twice. > > > > > > > > I don’t have an application for this, I ask this out of pure OCaml > > curiosity. So I am not so much interested in workarounds, more in an > answer > > to the question how I can return a function of type ‘a without more or > less > > directly calling some variant of printf. > > > > > > > > Best regards, > > > > > > > > Michael > > > > > > > > Intel Deutschland GmbH > > Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany > > Tel: +49 89 99 8853-0, www.intel.de > > Managing Directors: Christin Eisenschmid, Christian Lamprechter > > Chairperson of the Supervisory Board: Nicole Lau > > Registered Office: Munich > > Commercial Register: Amtsgericht Muenchen HRB 186928 > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs -- *Edouard Evangelisti* *Post doctoral Research Associate* *Sainsbury Laboratory, Cambridge University (SLCU)* *Bateman StreetCambridge CB2 1LR (United Kingdom)*