all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
7
Task/Tokenize-a-string/OCaml/tokenize-a-string-1.ocaml
Normal file
7
Task/Tokenize-a-string/OCaml/tokenize-a-string-1.ocaml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
let rec split_char sep str =
|
||||
try
|
||||
let i = String.index str sep in
|
||||
String.sub str 0 i ::
|
||||
split_char sep (String.sub str (i+1) (String.length str - i - 1))
|
||||
with Not_found ->
|
||||
[str]
|
||||
18
Task/Tokenize-a-string/OCaml/tokenize-a-string-2.ocaml
Normal file
18
Task/Tokenize-a-string/OCaml/tokenize-a-string-2.ocaml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
(* [try .. with] structures break tail-recursion,
|
||||
so we externalise it in a sub-function *)
|
||||
let string_index str c =
|
||||
try Some(String.index str c)
|
||||
with Not_found -> None
|
||||
|
||||
let split_char sep str =
|
||||
let rec aux acc str =
|
||||
match string_index str sep with
|
||||
| Some i ->
|
||||
let this = String.sub str 0 i
|
||||
and next = String.sub str (i+1) (String.length str - i - 1) in
|
||||
aux (this::acc) next
|
||||
| None ->
|
||||
List.rev(str::acc)
|
||||
in
|
||||
aux [] str
|
||||
;;
|
||||
14
Task/Tokenize-a-string/OCaml/tokenize-a-string-3.ocaml
Normal file
14
Task/Tokenize-a-string/OCaml/tokenize-a-string-3.ocaml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
let split_char sep str =
|
||||
let string_index_from i =
|
||||
try Some (String.index_from str i sep)
|
||||
with Not_found -> None
|
||||
in
|
||||
let rec aux i acc = match string_index_from i with
|
||||
| Some i' ->
|
||||
let w = String.sub str i (i' - i) in
|
||||
aux (succ i') (w::acc)
|
||||
| None ->
|
||||
let w = String.sub str i (String.length str - i) in
|
||||
List.rev (w::acc)
|
||||
in
|
||||
aux 0 []
|
||||
3
Task/Tokenize-a-string/OCaml/tokenize-a-string-4.ocaml
Normal file
3
Task/Tokenize-a-string/OCaml/tokenize-a-string-4.ocaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#load "str.cma";;
|
||||
let split_str sep str =
|
||||
Str.split (Str.regexp_string sep) str
|
||||
1
Task/Tokenize-a-string/OCaml/tokenize-a-string-5.ocaml
Normal file
1
Task/Tokenize-a-string/OCaml/tokenize-a-string-5.ocaml
Normal file
|
|
@ -0,0 +1 @@
|
|||
String.concat sep strings
|
||||
Loading…
Add table
Add a link
Reference in a new issue