Memoize |
BasicWerk
EC Support
Technique
Facebook
|
20140715154648_factor_cut-slice_memo |
factor_cut-slice_memo レコードセット(Array)を一定数で分割した配列を作る。
例: 229295 件あるデータを 49000 件毎に分割する IN: scratchpad auto-use "SELECT id FROM items" sql-query --- Data stack: { ~array~ ~array~ ~array~ ~array~ ~array~ ~array~ ~array~... ! 割り算の結果を integer で -> /i IN: scratchpad auto-use dup length 49000 /i --- Data stack: { ~array~ ~array~ ~array~ ~array~ ~array~ ~array~ ~array~... 4 ! cut-slice ( seq n -- before-slice after-slice ) ! after-slice を 49000 で割る ✕ length を割った回数分(times) IN: scratchpad auto-use [ 49000 cut-slice ] times --- Data stack: T{ slice f 0 49000 ~array~ } T{ slice f 49000 98000 ~array~ } T{ slice f 98000 147000 ~array~ } T{ slice f 147000 196000 ~array~ } T{ slice f 196000 229295 ~array~ } ! 最後にスタックに積んだ全ての Slice を Array にまとめる IN: scratchpad auto-use { } 4 1 + [ swap suffix ] times --- Data stack: { ~slice~ ~slice~ ~slice~ ~slice~ ~slice~ }
http://docs.factorcode.org/content/word-cut-slice,sequences.html http://docs.factorcode.org/content/word-__slash__i%2Cmath.html http://docs.factorcode.org/content/word-times,math.html
|
© Shin Nakamura/BasicWerk 2014 |