diff --git a/extra/slides/lib.factor b/extra/slides/lib.factor deleted file mode 100755 index f9708b3ca7..0000000000 --- a/extra/slides/lib.factor +++ /dev/null @@ -1,52 +0,0 @@ -USING: arrays assocs kernel vectors sequences namespaces - random math.parser math fry ; - -IN: assocs.lib - -: set-assoc-stack ( value key seq -- ) - dupd [ key? ] with find-last nip set-at ; - -: at-default ( key assoc -- value/key ) - dupd at [ nip ] when* ; - -: replace-at ( assoc value key -- assoc ) - >r >r dup r> 1vector r> rot set-at ; - -: peek-at* ( assoc key -- obj ? ) - swap at* dup [ >r peek r> ] when ; - -: peek-at ( assoc key -- obj ) - peek-at* drop ; - -: >multi-assoc ( assoc -- new-assoc ) - [ 1vector ] assoc-map ; - -: multi-assoc-each ( assoc quot -- ) - [ with each ] curry assoc-each ; inline - -: insert ( value variable -- ) namespace push-at ; - -: generate-key ( assoc -- str ) - >r 32 random-bits >hex r> - 2dup key? [ nip generate-key ] [ drop ] if ; - -: set-at-unique ( value assoc -- key ) - dup generate-key [ swap set-at ] keep ; - -: histogram ( assoc quot -- assoc' ) - H{ } clone [ - swap [ change-at ] 2curry assoc-each - ] keep ; inline - -: inc-at ( key assoc -- ) - [ 0 or 1 + ] change-at ; - -: ?at ( obj assoc -- value/obj ? ) - dupd at* [ [ nip ] [ drop ] if ] keep ; - -: if-at ( obj assoc quot1 quot2 -- ) - [ ?at ] 2dip if ; inline - -: when-at ( obj assoc quot -- ) [ ] if-at ; inline - -: unless-at ( obj assoc quot -- ) [ ] swap if-at ; inline