Suppose the goal is just to print all the items of a sequence, one on each line. The idea will be to print the first item (only for a nonempty sequence), then use recursion to deal with the rest of the sequence (where "the rest" of the sequence is done by slicing).
Line 2 is where the clause only for a nonempty sequence takes effect. Line 4 combines a recursive call and the slice for "the rest".
Now suppose we only want to print items in S so long as they are strings. In other words, the very first item that is not a string should end the printing for all the rest of S. For this situation, two modifications of the code above are needed. First, there needs to be an if-test for the type of item; second, recursion should stop once it is found an item is not a string.
In this second version, in order for recursion to happen, S must be nonempty and the first item of S has to be a string. Failure to meet these two conditions ends the function.