Thanks to visit codestin.com
Credit goes to github.com

Skip to content

dstorrs/racket-queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

queue

A Racket package for functional FIFO queues. Amortized O(1) for insert and removal.

NB: This module is for regular Racket. For Typed Racket, https://docs.racket-lang.org/functional-data-structures/Queues.html may or may not be better for your needs.

(define q (make-queue))

(queue-empty? q) ; #t (queue-count q) ; 0

(define q1 (queue-add q 'apple)) (queue-count q1) ; 1 (queue-remove q1) ; (values 'apple (make-queue)) (queue-count q1) ; 1

(define q2 (queue-add q1 'banana)) (queue-count q2) ; 2 (queue-remove q2) ; (values 'apple (queue-add (make-queue) 'banana)) (queue-count q2) ; 2 remember that this is functional, so q2 didn't change

(define q5 (queue-add* (make-queue) 'apple 'banana 'carrot 'dandelion 'eggplant)) ; 'apple is the first item in the queue, 'eggplant is last (queue-count q5) ; 5 (define-values (elem new-q) (queue-remove q5)) ; elem is 'apple ; new-q is (queue 'banana 'carrot 'dandelion 'eggplant) (queue-count q5) ; 5 (queue-count new-q) ; 4

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages