tial program flow most imperative programming consists of statements that amount to "do thisthen do thatthen do the other thing if those individual actions are wrapped in functionsmap(lets us do just thislet (etcbe functions that perform actions an execution utility function do_it lambda *argsf(*argsmap()-based action sequence map(do_it[ ]we can combine the sequencing of function calls with passing arguments from iterableshello lambda firstlastprint("hello"firstlastbye lambda firstlastprint("bye"firstlast_ list(map(do_it[hellobye]['david','jane']['mertz','doe'])hello david mertz bye jane doe of courselooking at the exampleone suspects the result one really wants is actually to pass all the arguments to each of the functions rather than one argument from each list to each function expressing that is difficult without using list comprehensionbut easy enough using onedo_all_funcs lambda fns*argslist(map(fn*args)for fn in fns_ do_all_funcs([hellobye]['david','jane']['mertz','doe']hello david mertz hello jane doe bye david mertz bye jane doe in generalthe whole of our main program couldin principlebe map(expression with an iterable of functions to execute to complete the program translating while is slightly more complicatedbut is possible to do directly using recursionstatement-based while loop while if break else (avoidingflow control