Advanced Functional Prog.

back - up - cont


Parsing expressions

As a second remark, "optional" results can be modeled with lists - an empty list meaning "nothing".
As an illustration, the following code checks that a string s starts with a letter/symbol v:

let sym (v:char) (s:string) = 
  match s with
  | "" -> []
  | _  -> if s.[0]=v then [(v,s.[1..])] else [];;

sym 'h' "hello";;
sym 'H' "hello";;

2 - 18