From: Pierre Weis <pierre.weis@inria.fr>
To: martin_jambon@emailuser.net (Martin Jambon)
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Printing text with holes
Date: Mon, 29 Sep 2003 23:25:28 +0200 (MET DST) [thread overview]
Message-ID: <200309292125.XAA18034@pauillac.inria.fr> (raw)
In-Reply-To: <Pine.LNX.4.40.0309291951590.9362-100000@pc-bioinfo1> from Martin Jambon at "Sep 29, 103 08:57:36 pm"
[...]
> Well, I just extracted some code from one of my CGI programs.
> Here, the purpose is to print one line of an HTML table, where one column
> should appear in bold face (using arrays containing strings "" or "<b>" or
> "</b>").
> Here is the code:
>
> let print_binary_patch id bb be ranking p =
> let volume1 = p.patch_1.volume in
> let volume2 = p.patch_2.volume in
> let vol_percentage1 = p.patch_1.relative_volume *. 100. in
> let vol_percentage2 = p.patch_2.relative_volume *. 100. in
>
> let print_option = function
> None -> ()
> | Some s -> << ($s) >> in
> <<
> <tr>
> <td>$int{ranking} $matched_tags{p}
> [<a href="$sumo_focus_url?id=$id&index=$int{p.patch_global.patch_number}&quick=false" target=_blank>View</a>]
> [<a href="$sumo_focus_url?id=$id&index=$int{p.patch_global.patch_number}&quick=true" target=_blank>Quick view</a>]</td>
> <td>${bb.(1)}$g{p.patch_global.patch_size}${be.(1)}</td>
> <td>${bb.(2)}$r1{vol_percentage1}% ($r1{volume1})${be.(2)}</td>
> <td>${bb.(3)}$r2{vol_percentage2}% ($r2{volume2})${be.(3)}</td>
> <td>${bb.(4)}$int{p.patch_1.pdb_group_number}${be.(4)}</td>
> <td>${bb.(5)}$int{p.patch_2.pdb_group_number}${be.(5)}</td>
> <td>${bb.(6)}$f3{p.patch_global.patch_sumo_score}${be.(6)}</td>
> </tr>
> >>
>
> This does not look very beautiful, but for me it is important to have a
> compact representation where one line of source code produces not less
> than one line of output. This allows to have a global overview of the
> output without having to run the program.
> The above piece of code has 28 holes... that we must be able to modify at
> any time, just because we don't print all the data.
>
> I would like to thank everyone for expressing their opinion on the
> subject!
>
> -- Martin
In this case, I surely would use a template file, read the template in
memory, build the substitution function (with a hash table ?) for the
dollar identifiers and then use string substitution with
Buffer.add_subtitute to produce the output in a Buffer.t value.
Hope this helps,
Pierre Weis
INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis/
-------------------
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-09-29 21:25 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-29 13:16 Martin Jambon
2003-09-29 14:10 ` Christian Lindig
2003-09-29 16:25 ` Benjamin Geer
2003-09-29 16:39 ` Brian Hurt
2003-09-29 17:45 ` Jean-Marc EBER
2003-09-29 18:22 ` Brian Hurt
2003-09-29 20:48 ` Pierre Weis
2003-09-29 21:52 ` Richard Jones
2003-09-29 22:07 ` Fred Yankowski
2003-09-29 22:14 ` Daniel M. Albro
2003-09-29 22:19 ` Richard Jones
2003-09-29 22:23 ` Matthieu Sozeau
2003-09-30 3:56 ` Brian Hurt
2003-09-30 4:40 ` Brian Hurt
2003-09-30 6:11 ` David Brown
2003-09-29 18:57 ` Martin Jambon
2003-09-29 21:25 ` Pierre Weis [this message]
2003-09-30 12:52 ` skaller
2003-09-30 17:48 ` Martin Jambon
2003-09-29 18:16 ` Richard Jones
2003-09-29 17:00 ` Pierre Weis
2003-09-29 17:03 ` Karl Zilles
2003-09-29 21:47 ` Pierre Weis
2003-09-30 7:20 ` Jean-Christophe Filliatre
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=200309292125.XAA18034@pauillac.inria.fr \
--to=pierre.weis@inria.fr \
--cc=caml-list@inria.fr \
--cc=martin_jambon@emailuser.net \
/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