Decomposition -- matrix
| nil | cons(h,t) | |
|---|---|---|
| empty(l) | true | false |
| head(l) | error | h |
| tail(l) | error | t |
Modules -- operation oriented
- organized around observers -- representation hiding
Objects -- data oriented
- organized around generators -- method interface
| nil | cons(h,t) | |
|---|---|---|
| empty(l) | true | false |
| head(l) | error | h |
| tail(l) | error | t |