Function ` sss(s prev ops)`:

- If
`s`is a goal, return`'()`as the answer. This is a list of no operators, since no operators are required to reach the goal state. - If
`s`is a failure, or no operators remain, return`'failure`. - If the next operator,
`op`, is applicable to the input state`s`, compute`new`by applying it to`s`.- If
`new`duplicates one of its ancestor states on`prev`, try the next operator. - If a search for the goal from the
`new`state,

`(sss new (cons s prev) *ops*)`

succeeds, return the`cons`of`op`onto the front of its operator sequence,`opseq`.

`s`*&rarr*`new`*&rarr*...*&rarr*`goal`

`op``opseq` - Else, try the next operator.

- If
- Else, try the next operator.