Memoize |
BasicWerk
EC Support
Technique
Facebook
|
20140716101254_factor_hashtables |
factor_hashtables ! hashtable IN: scratchpad auto-use SYMBOL: h IN: scratchpad auto-use H{ } h set ! sample: each-index IN: scratchpad auto-use { "one" "two" } [ 1 + swap 2array . ] each-index { 1 "one" } { 2 "two" } ! set-at IN: scratchpad auto-use { "one" "two" } [ 1 + h get set-at ] each-index IN: scratchpad auto-use h get . H{ { 1 "one" } { 2 "two" } } IN: scratchpad auto-use "three" 3 h get set-at IN: scratchpad auto-use h get . H{ { 1 "one" } { 2 "two" } { 3 "three" } } ! keys IN: scratchpad auto-use h get keys . { 1 2 3 } ! values IN: scratchpad auto-use h get values . { "one" "two" "three" } ! value が "t" で始まる要素のみに filter IN: scratchpad auto-use h get keys --- Data stack: { 1 2 3 } IN: scratchpad auto-use [ h get at R/ ^t/i re-contains? ] filter --- Data stack: { 2 3 } IN: scratchpad auto-use [ dup h get at 2array ] map >hashtable --- Data stack: H{ { 2 "two" } { 3 "three" } }
http://hyperpolyglot.org/stack http://docs.factorcode.org/content/word-each-index,sequences.html http://docs.factorcode.org/content/vocab-hashtables.html
|
© Shin Nakamura/BasicWerk 2014 |