# [plt-scheme] critique of some code

 From: Matthias Felleisen (matthias at ccs.neu.edu) Date: Mon Dec 7 08:49:11 EST 2009 Previous message: [plt-scheme] critique of some code Next message: [plt-scheme] critique of some code Messages sorted by: [date] [thread] [subject] [author]

```On Dec 7, 2009, at 7:54 AM, Prabhakar Ragde wrote:

> Matthias wrote:
>
>> You can also assign it to those of your students who understand
>> accumulators (which is what many loops require, but we let students
>> loose on for/do/while/repeat/rinse/one-more-time with nothing but
>> intuition).
>
> I would characterize the solution as structural recursion, since the accumulator is counting up towards a known bound. I know these categories are fuzzy at the edges, but my point is that I think this is a fair exercise in the "structural recursion on two values" part of an HtDP-based course. I often assign a similar question (using lists of symbols, and producing true/false instead of an index) at this point. --PR

Accumulator-based design doesn't stand by itself. It is always added to structural or generative recursion, meaning you have this grid:

plain | w/ accu
structural        |
--------------------------
generative        |

There are examples in the book for all four kinds of things.

;; ---

To recognize "structural w/ accumulator", ask yourself whether the conditional dispatch takes the changing argument (here the index into the string) into account. If so, you are looking at a multi-argument structural design. If not, you should look for the second symptom of accumulator design, namely, whether the second argument describes a fixed relationship between those parts of the first changing argument and its original value. A good designer writes down an accumulator statement for this. See my code.

Hth -- Matthias

```

 Posted on the users mailing list. Previous message: [plt-scheme] critique of some code Next message: [plt-scheme] critique of some code Messages sorted by: [date] [thread] [subject] [author]