(define (list-with-insertion lst idx val) (cond [(zero? idx) (cons val lst)] [(null? lst) lst] [else (append (take lst idx) (list-with-insertion (drop lst idx) 0 val))]))