RosettaCodeData/Task/Singly-linked-list-Element-insertion/Racket/singly-linked-list-element-insertion.rkt
Ingy döt Net 6f050a029e update
2013-06-05 21:47:54 +00: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))))