Paste: 2d-index-replicate?

Author: sf17k
Mode: factor
Date: Sun, 20 Mar 2011 21:40:46
Plain Text |
:: 2d-index-replicate
    ( ... x y quot: ( ... x y -- ... newelt ) -- ... newseq )
    { } clone x iota [ y iota [ [ dup ] dip 2array ] map nip append ] each
    [ first2 ] quot compose map ;

:: generate-region-file ( -- )
    32 32 [ generate-chunk ] 2d-index-replicate
    ! ...
;

Annotation: something like this?

Author: mrjbq7
Mode: factor
Date: Sun, 20 Mar 2011 21:46:14
Plain Text |
TUPLE: point x y z ;

: xyz ( point -- x y z )
    [ x>> ] [ y>> ] [ z>> ] tri ; inline

: change-xyz ( point obj x: ( x obj -- x' ) y: ( y obj -- y' ) z: ( z obj -- z' ) -- point )
    tri-curry [ change-x ] [ change-y ] [ change-z ] tri* ; inline

: init-point ( n -- point )
    ! TODO
    dup dup point boa ;
    ;

: make-points ( len -- points )
    iota [ init-point ] map-index ;

Annotation: c version

Author: sf17k
Mode: c
Date: Sun, 20 Mar 2011 21:50:11
Plain Text |
for(int x = x_off; x < x_off+16; x++)
for(int z = z_off; z < z_off+16; z++)
for(int y = 0; y < 128; y++){
    data[x*16*16+z*16+y] = foobar(x,y,z);
}

Annotation: or this?

Author: mrjbq7
Mode: factor
Date: Sun, 20 Mar 2011 21:55:43
Plain Text |
TUPLE: point x y z ;

: foobar ( x y z -- point )
    point boa ;

: make-points ( -- points )
    32 dup 16 [a,b)
    32 dup 16 [a,b)
    128 iota
    [ foobar ] 3map ;

Annotation: maybe this?

Author: mrjbq7
Mode: factor
Date: Sun, 20 Mar 2011 21:57:44
Plain Text |
: make-points ( -- points )
    [
        32 dup 16 [a,b) [
            32 dup 16 [a,b) [
                128 [0,b) [
                    foobar ,
                ]
            ]
        ]
    ] { } make ;

Annotation: fixed each

Author: mrjbq7
Mode: factor
Date: Sun, 20 Mar 2011 21:58:14
Plain Text |
: make-points ( -- points )
    [
        32 dup 16 [a,b) [
            32 dup 16 [a,b) [
                128 [0,b) [
                    foobar ,
                ] each
            ] each
        ] each
    ] { } make ;

New Annotation

Summary:
Author:
Mode:
Body: