resize ( n seq -- newseq )
Factor documentation > Factor handbook > The language > Collections > Resizable sequence implementation
Prev:growable


Vocabulary
sequences.private

Inputs and outputs
na non-negative integer
seqa sequence
newseqa new sequence


Word description
Creates a new sequence of the same type as seq with n elements, and copies the contents of seq into the new sequence. If n exceeds the length of seq, the remaining elements are filled with a default value; f for arrays and 0 for strings.

Notes
This generic word is only implemented for strings and arrays.

Definition
IN: sequences.private

GENERIC: resize ( n seq -- newseq ) flushable


Methods
USING: accessors alien.c-types byte-arrays elf kernel math
sequences.private specialized-arrays.instances.elf.Elf32_Phdr ;

M: Elf32_Phdr-array resize
[
[ \ Elf32_Phdr heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-Elf32_Phdr-array> ; inline


USING: accessors alien.c-types byte-arrays elf kernel math
sequences.private specialized-arrays.instances.elf.Elf32_Shdr ;

M: Elf32_Shdr-array resize
[
[ \ Elf32_Shdr heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-Elf32_Shdr-array> ; inline


USING: accessors alien.c-types byte-arrays elf kernel math
sequences.private specialized-arrays.instances.elf.Elf32_Sym ;

M: Elf32_Sym-array resize
[
[ \ Elf32_Sym heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-Elf32_Sym-array> ; inline


USING: accessors alien.c-types byte-arrays elf kernel math
sequences.private specialized-arrays.instances.elf.Elf64_Phdr ;

M: Elf64_Phdr-array resize
[
[ \ Elf64_Phdr heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-Elf64_Phdr-array> ; inline


USING: accessors alien.c-types byte-arrays elf kernel math
sequences.private specialized-arrays.instances.elf.Elf64_Shdr ;

M: Elf64_Shdr-array resize
[
[ \ Elf64_Shdr heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-Elf64_Shdr-array> ; inline


USING: accessors alien.c-types byte-arrays elf kernel math
sequences.private specialized-arrays.instances.elf.Elf64_Sym ;

M: Elf64_Sym-array resize
[
[ \ Elf64_Sym heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-Elf64_Sym-array> ; inline


USING: arrays sequences.private ;

M: array resize resize-array ; inline


USING: accessors bit-arrays bit-arrays.private byte-arrays
kernel sequences.private ;

M: bit-array resize
dupd [ bits>bytes ] [ underlying>> ] bi* resize-byte-array
bit-array boa clean-up ; inline


USING: accessors alien.c-types benchmark.nbody-simd byte-arrays
kernel math sequences.private
specialized-arrays.instances.benchmark.nbody-simd.body ;

M: body-array resize
[
[ \ body heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-body-array> ; inline


USING: accessors alien.c-types byte-arrays gpu.demos.bunny
kernel math sequences.private
specialized-arrays.instances.gpu.demos.bunny.bunny-vertex-struct
;

M: bunny-vertex-struct-array resize
[
[ \ bunny-vertex-struct heap-size * ] [ underlying>> ]
bi* resize-byte-array
] [ drop ] 2bi <direct-bunny-vertex-struct-array> ; inline


USING: byte-arrays sequences.private ;

M: byte-array resize resize-byte-array ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.char ;

M: char-array resize
[
[ \ char heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-char-array> ; inline


USING: accessors alien.c-types alien.complex byte-arrays kernel
math sequences.private
specialized-arrays.instances.alien.complex.complex-double ;

M: complex-double-array resize
[
[ \ complex-double heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-complex-double-array> ; inline


USING: accessors alien.c-types alien.complex byte-arrays kernel
math sequences.private
specialized-arrays.instances.alien.complex.complex-float ;

M: complex-float-array resize
[
[ \ complex-float heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-complex-float-array> ; inline


USING: accessors alien.c-types byte-arrays chipmunk.ffi kernel
math sequences.private
specialized-arrays.instances.chipmunk.ffi.cpContact ;

M: cpContact-array resize
[
[ \ cpContact heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-cpContact-array> ; inline


USING: accessors alien.c-types byte-arrays chipmunk.ffi kernel
math sequences.private
specialized-arrays.instances.chipmunk.ffi.cpPolyShapeAxis ;

M: cpPolyShapeAxis-array resize
[
[ \ cpPolyShapeAxis heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-cpPolyShapeAxis-array> ; inline


USING: accessors alien.c-types byte-arrays chipmunk.ffi kernel
math sequences.private
specialized-arrays.instances.chipmunk.ffi.cpVect ;

M: cpVect-array resize
[
[ \ cpVect heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-cpVect-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
math.vectors.simd.cords sequences.private
specialized-arrays.instances.math.vectors.simd.cords.double-4 ;

M: double-4-array resize
[
[ \ double-4 heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-double-4-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.double ;

M: double-array resize
[
[ \ double heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-double-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.unix.linux.epoll.epoll-event
unix.linux.epoll ;

M: epoll-event-array resize
[
[ \ epoll-event heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-epoll-event-array> ; inline


USING: accessors alien.c-types byte-arrays kernel macho math
sequences.private specialized-arrays.instances.macho.fat_arch ;

M: fat_arch-array resize
[
[ \ fat_arch heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-fat_arch-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
math.vectors.simd sequences.private
specialized-arrays.instances.math.vectors.simd.float-4 ;

M: float-4-array resize
[
[ \ float-4 heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-float-4-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.float ;

M: float-array resize
[
[ \ float heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-float-array> ; inline


USING: accessors alien.c-types byte-arrays game.loop.benchmark
kernel math sequences.private
specialized-arrays.instances.game.loop.benchmark.game-loop-benchmark
;

M: game-loop-benchmark-array resize
[
[ \ game-loop-benchmark heap-size * ] [ underlying>> ]
bi* resize-byte-array
] [ drop ] 2bi <direct-game-loop-benchmark-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
math.floats.half sequences.private
specialized-arrays.instances.math.floats.half.half ;

M: half-array resize
[
[ \ half heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-half-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.int ;

M: int-array resize
[
[ \ int heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-int-array> ; inline


USING: accessors alien.c-types byte-arrays kernel libusb math
sequences.private
specialized-arrays.instances.libusb.libusb_iso_packet_descriptor
;

M: libusb_iso_packet_descriptor-array resize
[
[ \ libusb_iso_packet_descriptor heap-size * ]
[ underlying>> ] bi* resize-byte-array
] [ drop ] 2bi <direct-libusb_iso_packet_descriptor-array>
; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.long ;

M: long-array resize
[
[ \ long heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-long-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.longlong ;

M: longlong-array resize
[
[ \ longlong heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-longlong-array> ; inline


USING: accessors byte-arrays kernel nibble-arrays
nibble-arrays.private sequences.private ;

M: nibble-array resize
[ drop ] [
[ nibbles>bytes ] [ underlying>> ] bi*
resize-byte-array
] 2bi nibble-array boa ;


USING: accessors alien.c-types byte-arrays kernel macho math
sequences.private specialized-arrays.instances.macho.nlist ;

M: nlist-array resize
[
[ \ nlist heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-nlist-array> ; inline


USING: accessors alien.c-types byte-arrays kernel macho math
sequences.private specialized-arrays.instances.macho.nlist_64 ;

M: nlist_64-array resize
[
[ \ nlist_64 heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-nlist_64-array> ; inline


USING: accessors alien.c-types byte-arrays fluids kernel math
sequences.private
specialized-arrays.instances.fluids.particle_t ;

M: particle_t-array resize
[
[ \ particle_t heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-particle_t-array> ; inline


USING: accessors alien.c-types benchmark.struct-arrays
byte-arrays kernel math sequences.private
specialized-arrays.instances.benchmark.struct-arrays.point ;

M: point-array resize
[
[ \ point heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-point-array> ; inline


USING: accessors alien.c-types byte-arrays kernel macho math
sequences.private specialized-arrays.instances.macho.section ;

M: section-array resize
[
[ \ section heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-section-array> ; inline


USING: accessors alien.c-types byte-arrays kernel macho math
sequences.private specialized-arrays.instances.macho.section_64
;

M: section_64-array resize
[
[ \ section_64 heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-section_64-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.short ;

M: short-array resize
[
[ \ short heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-short-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.size_t ;

M: size_t-array resize
[
[ \ size_t heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-size_t-array> ; inline


USING: sequences.private strings ;

M: string resize resize-string ; inline


USING: accessors alien.c-types byte-arrays kernel math
ogg.theora sequences.private
specialized-arrays.instances.ogg.theora.th-quant-ranges ;

M: th-quant-ranges-array resize
[
[ \ th-quant-ranges heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-th-quant-ranges-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.unix.time.timeval unix.time ;

M: timeval-array resize
[
[ \ timeval heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-timeval-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
math.vectors.simd sequences.private
specialized-arrays.instances.math.vectors.simd.uchar-16 ;

M: uchar-16-array resize
[
[ \ uchar-16 heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-uchar-16-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.uchar ;

M: uchar-array resize
[
[ \ uchar heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-uchar-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.tools.disassembler.udis.ud_operand
tools.disassembler.udis ;

M: ud_operand-array resize
[
[ \ ud_operand heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-ud_operand-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
math.vectors.simd sequences.private
specialized-arrays.instances.math.vectors.simd.uint-4 ;

M: uint-4-array resize
[
[ \ uint-4 heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-uint-4-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.uint ;

M: uint-array resize
[
[ \ uint heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-uint-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.uintptr_t ;

M: uintptr_t-array resize
[
[ \ uintptr_t heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-uintptr_t-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.ulong ;

M: ulong-array resize
[
[ \ ulong heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-ulong-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.ulonglong ;

M: ulonglong-array resize
[
[ \ ulonglong heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-ulonglong-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.ushort ;

M: ushort-array resize
[
[ \ ushort heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-ushort-array> ; inline


USING: accessors alien.c-types byte-arrays kernel math
sequences.private
specialized-arrays.instances.alien.c-types.void* ;

M: void*-array resize
[
[ \ void* heap-size * ] [ underlying>> ] bi*
resize-byte-array
] [ drop ] 2bi <direct-void*-array> ; inline