def _menu (string<> items) for (decl int i) (< i (size items)) (inc i) out " " i ") " items endl console end for end _menu def _ok (string reply, int itemcount) try decl int n set n (int reply) return (and (or (> n 0) (= n 0)) (< n itemcount)) catch return false end try end _ok def selector (string<> items, string prompt) # Prompt to select an item from the items if (= (size items) 0) return "" end if decl int itemcount reply set reply -1 set itemcount (size items) while (not (_ok reply itemcount)) _menu items out prompt console set reply (in int console) end while return items<(int reply)> end selector decl string<> items append "fee fie" "huff and puff" "mirror mirror" "tick tock" items decl string item set item (selector items "Which is from the three pigs: ") out "You chose: " item endl console