パッと思いついた感じで特に問題なくかけた。

ただ、思いつきをメモして、晩酌後にやるので
ちょっとしたところで結構時間を食ってしまう。

勉強するときはお酒 cons しちゃ駄目ね。

(define insertR
  (lambda (new old lat)
    (cond ((null? lat) '())
          ((eq? old (car lat)) (cons old (cons new (cdr lat))))
          (else (cons (car lat) (insertR new old (cdr lat)))))))

(define insertL
  (lambda (new old lat)
    (cond ((null? lat) '())
          ((eq? old (car lat)) (cons new (cons old (cdr lat))))
          (else (cons (car lat) (insertL new old (cdr lat)))))))

(insertR 'ddd 'ccc '(aaa bbb ccc eee fff))
(insertL 'ddd 'eee '(aaa bbb ccc eee fff))


L と R の違いは consする順番が違うことだけ。
あと引数に渡すとき quoteしておく所が少し迷いました

Scheme手習いは かなり丁寧に説明してくれるので
躓きが少なくていいな。

僕のような初心者にお勧め。