caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Luc Maranget <luc.maranget@inria.fr>
To: luther@dpt-info.u-strasbg.fr (Sven Luther)
Cc: luc.maranget@inria.fr (Luc Maranget),
	alex@baretta.com (Alessandro Baretta),
	garrigue@kurims.kyoto-u.ac.jp (Jacques Garrigue),
	caml-list@inria.fr (Ocaml)
Subject: Re: [Caml-list] Again on pattern matching and strings
Date: Fri, 25 Oct 2002 10:40:06 +0200 (MET DST)	[thread overview]
Message-ID: <200210250840.KAA0000030588@beaune.inria.fr> (raw)
In-Reply-To: <20021024162629.GA4395@iliana> from "Sven Luther" at oct 24, 2002 06:26:29


> > To sum it up for strings : strings are atoms to the PM compiler which
> > never look into them, it only compares one string against another, for
> > equality only.  The match compiler does not make avantage of the known
> > pattern string in any sense.  The match compiler does not make
> > avantage of the existence of a lexical ordering on strings. In fact
> > many << optimizations >> are posible here, none is performed.
> 
> So, i suppose replacing all strings in a pattern matching by an integer
> pointing to hashtable or something would improve performance a lot if
> the same string is pattern matched over and over again ?
> 
> Friendly,

Indeed, but there are other possibilities, such as tries.
In the style
match x with
| "a" -> 1
| "ab" -> 2
| "abc" -> 3
| _ -> 4

===>

switch get_char 0 x with
| 'a' ->
   begin switch get_char 1 x with
   | eos -> 1 (* end of string ... *)
   | 'b' -> (switch get_char 2 x with ...)
   | _ -> 4
   end
| _ -> 4

Where switch operates on machine integers.

> 
> Sven Luther
> 


--Luc

-------------------
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


  reply	other threads:[~2002-10-25  8:40 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-23 23:47 Alessandro Baretta
2002-10-23 23:46 ` Alexander V.Voinov
2002-10-23 23:57 ` Stefano Zacchiroli
2002-10-24  7:10   ` Alessandro Baretta
2002-10-24  7:38     ` Stefano Zacchiroli
2002-10-24  8:01     ` Jacques Garrigue
2002-10-24 12:38       ` Alessandro Baretta
2002-10-24 13:24         ` Luc Maranget
2002-10-24 15:13           ` Alessandro Baretta
2002-10-24 16:26           ` Sven Luther
2002-10-25  8:40             ` Luc Maranget [this message]
2002-10-24  4:11 ` Christopher Quinn
     [not found] ` <15799.14325.887770.501722@karryall.dnsalias.org>
2002-10-24  7:43   ` Alessandro Baretta
2002-10-24  8:51     ` Daniel de Rauglaudre
2002-10-24  9:50       ` Stefano Zacchiroli
2002-10-24 10:30         ` Noel Welsh
2002-10-24 12:59         ` Daniel de Rauglaudre
2002-10-24 13:16           ` Basile STARYNKEVITCH
2002-10-25 10:29             ` Daniel de Rauglaudre
2002-10-24 12:34       ` Alessandro Baretta
2002-10-24 12:51         ` Daniel de Rauglaudre
     [not found] <IIEMJEMIMDMLIIPHPOBLOELNCAAA.fsmith@mathworks.com>
2002-10-24  7:16 ` Alessandro Baretta

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=200210250840.KAA0000030588@beaune.inria.fr \
    --to=luc.maranget@inria.fr \
    --cc=alex@baretta.com \
    --cc=caml-list@inria.fr \
    --cc=garrigue@kurims.kyoto-u.ac.jp \
    --cc=luther@dpt-info.u-strasbg.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;
as well as URLs for NNTP newsgroup(s).