Source

calcoq / util.ml

let ( @@ ) f x = f x
let ( $ ) g f x = g (f x)
let ( +> ) x f = f x
let id x = x

let slist ?(delim="; ") f l = (String.concat delim @@ List.map f l)

let string1 c = String.make 1 c

let char_concat = slist ~delim:"" (String.make 1)
let cs_string s =
  let rec iter store i =
    if i < 0 then store
    else iter (s.[i]::store) (i-1)
  in
  iter [] (String.length s - 1)

let infile filename f =
  let ch = open_in filename in
  try
    let y = f ch in
    close_in ch; y
  with
  | e -> close_in ch; raise e
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.