caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] One question
@ 2003-02-23 16:29 Alexander S. Usov
  2003-02-23 17:12 ` Samuel Mimram
  2003-02-23 20:59 ` Remi Vanicat
  0 siblings, 2 replies; 5+ messages in thread
From: Alexander S. Usov @ 2003-02-23 16:29 UTC (permalink / raw)
  To: OCaml mailing list

Hi!

Can anybody expalin me why in such code

------
type lex_node = Letter of char * bool * lex_tree
and  lex_tree = lex_node list ;;

exceprion Already ;;

let rec insert lex word =
  let whd = word.[0]
  and wtl = String.sub word 1 (String.length word - 1)
  in
    try
      match lex with
	| (Letter(c,b,t) as letter)::tail when (c <> whd) -> 
	    letter :: (insert tail word)
	| Letter(c,b,t) :: tail when (wtl = "") ->
	    if b = true then
	      raise Already
	    else
	      Letter(c,true,t) :: tail
	| Letter(c,b,t) :: tail ->
	    Letter(c,b,(insert t wtl)) :: tail
	| [] ->
	    if wtl = "" then
	      [ Letter (whd, true, []) ]
	    else
	      [ Letter (whd, false, insert [] wtl) ]
    with
      | Already -> lex ;;

let a = insert [] "word"
in
  a == insert a "word" ;;
-----

returns false?

-- 
Best regards,
  Alexander.


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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-02-23 21:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-02-23 16:29 [Caml-list] One question Alexander S. Usov
2003-02-23 17:12 ` Samuel Mimram
2003-02-23 17:28   ` Alexander S. Usov
2003-02-23 17:49     ` Samuel Mimram
2003-02-23 20:59 ` Remi Vanicat

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