Skip to content

Instantly share code, notes, and snippets.

@dharmatech
Created March 4, 2010 07:03
Show Gist options
  • Save dharmatech/321489 to your computer and use it in GitHub Desktop.
Save dharmatech/321489 to your computer and use it in GitHub Desktop.

(dharmalab misc collection list)

(list-fold-left  <list> <value> <procedure>)
(list-fold-right <list> <value> <procedure>)

(list-reverse <list>)

(list-for-each            <list> <procedure>)
(list-for-each-with-index <list> <procedure>)

(list-for-each-pair <list> <procedure>)

(list-map  <list> <procedure>)
(list-map! <list> <procedure>)

(list-take <list> <integer>)
(list-drop <list> <integer>)

(list-subseq <list> <start:integer> <end:integer>)

(list-filter <list> <procedure>)

(list-copy <list>)

(list-find  <list> <procedure>)
(list-index <list> <procedure>) => <integer>

(is-list <variable>)

Indexable sequences

These libraries:

(dharmalab misc collection vector)
(dharmalab misc collection f32-vector)
(dharmalab misc collection f64-vector)
(dharmalab misc collection string)

export the following procedures, prefixed accordingly (e.g. vector-fold-left):

(fold-left  <seq> <val> <procedure>)
(fold-right <seq> <val> <procedure>)

(for-each            <seq> <procedure>)
(for-each-with-index <seq> <procedure>)

(copy <seq>)

(map! <seq> <procedure>)
(map  <seq> <procedure>)

(subseq <seq> <start:integer> <end:integer>)

(take <seq> <integer>)
(drop <seq> <integer>)

(filter-to-reverse-list <seq> <procedure>)
(filter                 <seq> <procedure>)

(index <seq> <procedure>)
(find  <seq> <procedure>)

(swap! <seq> <i:integer> <j:integer>)

(reverse! <seq>)
(reverse  <seq>)

(dharmalab records define-record-type)

Macro: define-record-type++

Example:

(define-record-type++ point
  (fields x y))

(define p (make-point 10 20))

(is-point p)

(list p.x p.y) ;; ---> (10 20)

(define (distance-from-origin p)
  (import-point p)
  (sqrt (+ (* x x) (* y y))))

(dharmalab misc time entry)

The standard time macro is provided by many implementations, but exported from different libraries. This is a common interface to it.

(time <expression>)

(dharmalab misc queue)

Purely functional queue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment