Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] One question
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Alexander S. Usov <A.S.Usov@K...>
Subject: [Caml-list] One question
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