我可以使用什么样的Racket函数将值插入列表中的任意位置?

Ale*_*lex 3 lisp scheme racket

我知道这很难实现,但我希望Racket能够实现它的"电池包含"承诺.我正在寻找一个像这样的功能:

> (define (between lst item spot)
    (append (take lst spot)
            (cons item (drop lst spot))))
> (between '(1 3) 2 1)
'(1 2 3)
Run Code Online (Sandbox Code Playgroud)

Racket是否包含任何此类内置设备?

Chr*_*ung 8

这是一个基于Stephen Chang的评论的实现(我稍微交换了参数顺序并重命名了函数):

(define (insert-at lst pos x)
  (define-values (before after) (split-at lst pos))
  (append before (cons x after)))
Run Code Online (Sandbox Code Playgroud)