package forester

  1. Overview
  2. Docs
A tool for tending mathematical forests

Install

Dune Dependency

Authors

Maintainers

Sources

2.5.1.tar.gz
md5=b26b6f4e3d14b976c3d5018c97b81b94
sha512=f0c794ed4330485b5255639720ad7201488b77ef947b0736a847fa4f56f93d3f03a22fd2a3319bbe867bab827a4b5ae73b2426a1067911b29fe178d21dd99e73

doc/src/forester.prelude/String_util.ml.html

Source file String_util.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let index_of_first_ascii_char word =
  let rx = Str.regexp "\\([A-za-z]\\)" in
  try Option.some @@ Str.search_forward rx word 0 with _ -> None

let title_case_word ix word =
  if ix == 0 then
    begin
      match index_of_first_ascii_char word with
      | None -> word
      | Some i ->
        word |> String.mapi @@ fun j c ->
        if i = j then Char.uppercase_ascii c else c
    end
  else
    word

let sentence_case str =
  let words = String.split_on_char ' ' str in
  String.concat " " @@ List.mapi title_case_word words
OCaml

Innovation. Community. Security.