turtle-lang 0.1.1

A humble, fun, and friendly Lisp
Documentation
(import "@prelude")

(func contains 
    (key map) 
    (gt 0 
        (length 
            (filter 
                (lambda '
                    (k) '
                    (eq 
                        (first k) 
                        key)) map))))
(func insert 
    (kvpair map) 
    (cons kvpair 
        (filter 
            (lambda '
                (k) '
                (not 
                    (eq 
                        (first k) 
                        (first kvpair)))) map)))
(metafunc insert! ($kvpair $map) (let $map (insert ,$kvpair ,$map)))
(let 'remove. (lambda 
    '(key map) 
        '(filter 
            (lambda '
                (k) '
                (not 
                    (eq 
                        (first k) 
                        key))) map)))
(metafunc remove! ($key $map) (let $map (remove. ,$key ,$map)))
(export 'remove remove.)
(func extract 
    (key map) 
    (second 
        (first 
            (filter 
                (lambda '
                    (k) '
                    (eq 
                        (first k) 
                        key)) map))))