Here is a plan, shown for example smallest([5,3,1,4]).
| p | s | |
|---|---|---|
| [3,1,4] | 5 | |
| [1,4] | 3 | |
| [4] | 1 | |
| [ ] | 1 | 
Here is an algorithm based on that plan.
  int smallest(ConstList L)
  {
    int s = head(L);
    for(ConstList p = tail(L); !isEmpty(p); p = tail(p))
    {
      s = min(s, head(p));
    }
    return s;
  }