RosettaCodeData/Task/Singly-linked-list-Element-insertion/Racket/singly-linked-list-element-insertion.rkt
2023-07-01 13:44:08 -04:00

11 lines
352 B
Racket

#lang racket
;; insert b after a in a mutable list (assumes that a is in the input list)
(define (insert-after! list a b)
(if (equal? (mcar list) a)
(set-mcdr! list (mcons b (mcdr list)))
(insert-after! (mcdr list) a b)))
(define l (mcons 1 (mcons 2 (mcons 3 '()))))
(insert-after! l 2 2.5)
l ; -> (mcons 1 (mcons 2 (mcons 2.5 (mcons 3))))