Skip to content

Instantly share code, notes, and snippets.

@KeenS
Created January 14, 2015 14:43
Show Gist options
  • Save KeenS/e0e11f56e9ca2d161435 to your computer and use it in GitHub Desktop.
Save KeenS/e0e11f56e9ca2d161435 to your computer and use it in GitHub Desktop.
(import (scheme base)
(scheme write))
(define-record-type rb-tree
(%make-rb-tree compare)
rb-tree?
(node rb-tree-node set-node!)
(compare rb-tree-compare set-rb-tree-compare!)
(size rb-tree-size set-size!))
(define (compare i1 i2)
(- i1 i2))
(define (make-rb-tree . cmp)
(let* ((cmp (if (null? cmp) compare (car cmp)))
(rb (%make-rb-tree cmp)))
(set-node! rb 'leaf)
(set-size! rb 0)
(write (rb-tree-compare rb)) ; #<unbound>になってしまう
rb))
(make-rb-tree compare)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment