[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | SooHyoung Oh <shoh@d...> |
| Subject: | Re: [Caml-list] Clarification on some ocaml stuff |
"group' n rest" is returning 'a array list, not 'a array array. firstN: int -> 'a array -> 'a array * 'a array group': int -> 'a array -> 'a array list group: int -> 'a array -> 'a array array --- SooHyoung Oh ----- Original Message ----- From: "Ryan Bastic" <rbastic@gis.net> To: <caml-list@inria.fr> Sent: Friday, April 18, 2003 12:25 PM Subject: [Caml-list] Clarification on some ocaml stuff > Hello all, > A few weeks ago I posted a message asking how to create a program in > OCaml to shuffle vector of strings into an array of arrays. Had some > problems understanding how to do it in Ocaml properly, and a kind soul > posted a very elegant solution to the problem :-) unfortunately, i still > can't understand some things from it. > > What follows is some code with comments on how it is expected to be > used, and also > where my confusion in the semantics of the code lay. > > (* Return first 'n' from input and the rest. *) > let firstN n input = > let nInput = Array.length input in > if n >= nInput > then (input, [||]) > else (Array.sub input 0 n, Array.sub input n (nInput - n)) > > let group n input = > let rec group' n input = > if Array.length input = 0 then [] > else > let (front, rest) = firstN n input in > (* the next line confuses me. i'm aware of :: being a list > concatenation > operator, but in this case, shouldn't group 'n rest be > returning an array, > because that's what firstN returns. I've experimented in the > REPL and had > no luck in figuring it out. *) > front :: group' n rest > in > Array.of_list (group' n input) > > if you pop this into the toplevel, and do: > > group 2 [|"Name1"; "Name2"; "Name3"; "Name4"; "Name5";|];; > > you'll see the general functionality expected. > > thanks for any help, > -Ryan > http://malander.undrgnd.net > > ------------------- > 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 > ------------------- 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