“…a I g(f(h x)(h y))(zip a g f (t x)(t y)); def pair x y = x,y; def hums = (1,2,3,4,5); def zips ffi zip () prefix pair zips nums (reverse nums); ((1,5), (2,4), (3,3),(4,2),(5,1)) def sproduet = zip 0 plus mult; def map2 f x y = let g z = map(f z)y; concat (map g x); def cproduct = map2 pair; cproduct (1,2,3)(4,5,6); Functions for analyzing strings of characters may be constructed systematically by defining a set of functions for analyzing called 'parsers' and then by defining functions which create parsers from other parsers.…”