diff options
| author | Brian Campbell | 2017-09-18 16:31:56 +0100 |
|---|---|---|
| committer | Brian Campbell | 2017-09-18 16:31:56 +0100 |
| commit | 4d83d5cf11751b990055963797b5919bf7c22b0b (patch) | |
| tree | 329c2cd838c467430146ceafd662f6a8a7091d40 /lib/ocaml_rts/linksem/src_lem_library/xstring.ml | |
| parent | d7d7b781e91abbefca7e7a037c4109b3db89f958 (diff) | |
| parent | 4e7a568bb57337d41dda893044ed84b66e62752f (diff) | |
Merge branch 'experiments' into mono-experiments
Diffstat (limited to 'lib/ocaml_rts/linksem/src_lem_library/xstring.ml')
| -rw-r--r-- | lib/ocaml_rts/linksem/src_lem_library/xstring.ml | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/ocaml_rts/linksem/src_lem_library/xstring.ml b/lib/ocaml_rts/linksem/src_lem_library/xstring.ml new file mode 100644 index 00000000..7a705aeb --- /dev/null +++ b/lib/ocaml_rts/linksem/src_lem_library/xstring.ml @@ -0,0 +1,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;; |
