Skip to content

Instantly share code, notes, and snippets.

@ijp
Created February 5, 2012 18:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ijp/1746935 to your computer and use it in GitHub Desktop.
Save ijp/1746935 to your computer and use it in GitHub Desktop.
;; untested
(define-record-type end)
(define-record-type (node %node node?)
(fields (immutable left %left)
(immutable value value)
(immutable right %right)))
(define-syntax-rule (node left value right)
(%node (delay left) value (delay right)))
(define left (compose force %left))
(define right (compose force %right))
(define (list->dllist list)
(define (next list prev)
(if (null? list)
(make-end)
(letrec ((this (node prev (car list) (next (cdr list) this))))
this)))
(next list (make-end)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment