>>606
> 破壊的操作で、リストの先頭を削除するのがどうしてもわかりません。

そういうことは原理的にできない。(理由は考えてみるべし)
append! で第一引数が () の場合なども同様で、結果は明示的に返す必要がある。