Skip to content

Instantly share code, notes, and snippets.

@alifarazz
Last active April 25, 2021 17:36
Show Gist options
  • Save alifarazz/2228971133c629ebd55bebfcc25b4141 to your computer and use it in GitHub Desktop.
Save alifarazz/2228971133c629ebd55bebfcc25b4141 to your computer and use it in GitHub Desktop.
(define list '((1 2) (3 4)))
(car list) ; -> '(1 2)
(car (cdr list)) ; -> '(3 4)
(cadr list) ; -> '(3 4)
(leaf 3) ; leaf-data
(node left_subtree right_subtree) ; node-data

(car node-data) ; -> 'node
(cadr node-data) ; -> left_subtree
(caddr node-data) ; -> right_subtree

(car leaf-data) ; -> 'leaf
(cadr leaf-data) ; -> 3
(define data '(node (leaf 1) (node (leaf 2) (leaf 3))))
(display (sum data))
(car data) ; -> ?

(defn make-binary-tree []
    '())

(defn binary-tree-add-element [tree elem]
  (defn insert-into [tree elem] ())
  (if (= (binary-tree-get-elem)
         'nil)
      (insert-into tree elem)
      tree))

Never actually do this in Clojure! Use multi-methods with deftype instead.


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