summaryrefslogtreecommitdiff
path: root/lib/ocaml_rts/linksem/src_lem_library/xstring.ml
blob: 7a705aeb3eefdf2cbbe3d655afa97fcad00c7c00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let explode s = 
  let rec exp i l =
    if i < 0 then l else exp (i - 1) (s.[i] :: l) in
  exp (String.length s - 1) [];;

let implode l = 
  let res = String.create (List.length l) in
  let rec imp i = function
  | [] -> res
  | c :: l -> res.[i] <- c; imp (i + 1) l in
  imp 0 l;;

let string_case s c_empty c_cons = begin
  let len = String.length s in
  if (len = 0) then c_empty else
  c_cons (String.get s 0) (String.sub s 1 (len - 1))
end;;

let cons_string c s = begin
  let cs = String.make 1 c in
  cs ^ s
end;;