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 |