Add iota virtual sequence which will eventually replace integers-as-sequences
parent
a743e6a08b
commit
a977691d82
|
@ -1262,6 +1262,17 @@ HELP: shorten
|
||||||
"V{ 1 2 3 }"
|
"V{ 1 2 3 }"
|
||||||
} } ;
|
} } ;
|
||||||
|
|
||||||
|
HELP: iota
|
||||||
|
{ $values { "n" integer } { "iota" iota } }
|
||||||
|
{ $description "Creates an immutable virtual sequence containing the integers from 0 to " { $snippet "n-1" } "." }
|
||||||
|
{ $examples
|
||||||
|
{ $example
|
||||||
|
"USING: math.parser sequences ;"
|
||||||
|
"3 iota [ sq ] map ."
|
||||||
|
"{ \"0\" \"1\" \"2\" }"
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
ARTICLE: "sequences-unsafe" "Unsafe sequence operations"
|
ARTICLE: "sequences-unsafe" "Unsafe sequence operations"
|
||||||
"The " { $link nth-unsafe } " and " { $link set-nth-unsafe } " sequence protocol bypasses bounds checks for increased performance."
|
"The " { $link nth-unsafe } " and " { $link set-nth-unsafe } " sequence protocol bypasses bounds checks for increased performance."
|
||||||
$nl
|
$nl
|
||||||
|
|
|
@ -101,6 +101,16 @@ M: integer nth-unsafe drop ;
|
||||||
|
|
||||||
INSTANCE: integer immutable-sequence
|
INSTANCE: integer immutable-sequence
|
||||||
|
|
||||||
|
! In the future, this will replace integer sequences
|
||||||
|
TUPLE: iota { n read-only } ;
|
||||||
|
|
||||||
|
: iota ( n -- iota ) \ iota boa ; inline
|
||||||
|
|
||||||
|
M: iota length n>> ;
|
||||||
|
M: iota nth-unsafe drop ;
|
||||||
|
|
||||||
|
INSTANCE: iota immutable-sequence
|
||||||
|
|
||||||
: first-unsafe ( seq -- first )
|
: first-unsafe ( seq -- first )
|
||||||
0 swap nth-unsafe ; inline
|
0 swap nth-unsafe ; inline
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue