Skip to content

Instantly share code, notes, and snippets.

@yminsky
Created January 8, 2016 01:39
Show Gist options
  • Save yminsky/abd12b1f8c978124b812 to your computer and use it in GitHub Desktop.
Save yminsky/abd12b1f8c978124b812 to your computer and use it in GitHub Desktop.
OCD kicking in now
let rec lexwhile prop inp =
match inp with
| c::cs when prop c -> let tok,rest = lexwhile prop cs in c^tok,rest
| _ -> "",inp
;;
let rec lex inp =
match snd(lexwhile space inp) with
| [] -> []
| c::cs ->
let prop =
if alphanumeric c then alphanumeric
else if symbolic c then symbolic
else fun c -> false
in
let toktl,rest = lexwhile prop cs in
(c^toktl)::lex rest
;;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment