Skip to content

charJe/funds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Funds

Funds provides portable, purely functional data structures in Common Lisp. The vector, hash, Queue, and Heap are implemented using trees, so “modifying” them is O(log(n)) time and space. https://common-lisp.net/project/funds/ https://common-lisp.net/project/funds/funds.pdf

Below are the exported functions; they should be self explanatory:

Vector

  • MAKE-VECTOR
  • VECTOR-REF
  • VECTOR-SET
  • VECTOR-SIZE
  • VECTOR-COUNT
  • MAP-VECTOR
  • VECTOR-COPY (can also be used for subvector)
  • VECTOR-COUNT-IF
  • VECTOR-AS-LIST

Hash

  • MAKE-HASH
  • HASH-SET
  • HASH-REMOVE
  • HASH-REF
  • HASH-SIZE
  • MAP-HASH
  • HASH-KEYS
  • HASH-FROM-ALIST
  • HASH-AS-ALIST

Hash Set

  • MAKE-HASH
  • HASH-SET
  • HASH-REMOVE
  • HASH-REF
  • HASH-SIZE
  • HASH-FROM-LIST
  • HASH-AS-LIST
  • HASH-UNION
  • HASH-DIFFERENCE
  • HASH-INTERSECTION

Queue

  • MAKE-QUEUE
  • DEQUEUE
  • ENQUEUE
  • QUEUE-FIRST
  • QUEUE-COUNT
  • QUEUE-COUNT-IF
  • QUEUE-EMPTY-P
  • QUEUE-SIZE
  • MAP-QUEUE
  • QUEUE-AS-LIST

Heap

  • MAKE-HEAP
  • HEAP-INSERT
  • HEAP-REMOVE
  • HEAP-FIRST
  • HEAP-EMPTY-P

Stack

  • MAKE-STACK
  • STACK-PUSH
  • STACK-POP
  • STACK-TOP
  • STACK-COUNT
  • STACK-COUNT-IF
  • MAP-STACK
  • STACK-EMPTY-P
  • STACK-SIZE
  • STACK-FROM-LIST
  • STACK-AS-LIST