Describing the process of separating a file into a list of lines is easy. Otherwise, the file contains at least one symbol and thus at least one line. This line must be separated from the rest of the file, and then the rest of the file must be translated into a list of lines. That is, it is basically never an immediate component of the given file but always a proper suffix. The only exception occurs when ' NL occurs twice in a row.
Every recursive application consumes a list that is shorter than the given one.
Hence, the recursive process eventually stops because the function consumes empty . Exercise 27.2.2 Organize the program in figure using local . Then organize the resulting program using a local again. The function consumes a file of numbers and the symbol ' table and outputs a list of restaurant records. The first field represents a table number, the second one a list of amounts charged to that table.