Add circular-while*
parent
4797dae4f2
commit
316747e471
|
@ -55,6 +55,13 @@ HELP: circular-while
|
||||||
}
|
}
|
||||||
{ $description "Calls " { $snippet "quot" } " on each element of the sequence until each call yields " { $link f } " in succession." } ;
|
{ $description "Calls " { $snippet "quot" } " on each element of the sequence until each call yields " { $link f } " in succession." } ;
|
||||||
|
|
||||||
|
HELP: circular-while*
|
||||||
|
{ $values
|
||||||
|
{ "circular" circular }
|
||||||
|
{ "quot" quotation }
|
||||||
|
}
|
||||||
|
{ $description "Calls " { $snippet "quot" } " on each element of the sequence until one call yields " { $link f } "." } ;
|
||||||
|
|
||||||
ARTICLE: "circular" "Circular sequences"
|
ARTICLE: "circular" "Circular sequences"
|
||||||
"The " { $vocab-link "circular" } " vocabulary implements the " { $link "sequence-protocol" } " to allow an arbitrary start index and wrap-around indexing." $nl
|
"The " { $vocab-link "circular" } " vocabulary implements the " { $link "sequence-protocol" } " to allow an arbitrary start index and wrap-around indexing." $nl
|
||||||
"Creating a new circular object:"
|
"Creating a new circular object:"
|
||||||
|
@ -74,6 +81,6 @@ ARTICLE: "circular" "Circular sequences"
|
||||||
growing-circular-push
|
growing-circular-push
|
||||||
}
|
}
|
||||||
"Iterating over a circular until a stop condition:"
|
"Iterating over a circular until a stop condition:"
|
||||||
{ $subsections circular-while } ;
|
{ $subsections circular-while circular-while* } ;
|
||||||
|
|
||||||
ABOUT: "circular"
|
ABOUT: "circular"
|
||||||
|
|
|
@ -42,3 +42,9 @@ IN: circular.tests
|
||||||
swap growing-circular-push
|
swap growing-circular-push
|
||||||
] with each >array
|
] with each >array
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
[ V{ 1 2 3 1 2 } ] [
|
||||||
|
{ 1 2 3 } <circular> V{ } [
|
||||||
|
[ [ push ] [ length 4 < ] bi ] curry circular-while
|
||||||
|
] keep
|
||||||
|
] unit-test
|
||||||
|
|
|
@ -77,3 +77,6 @@ PRIVATE>
|
||||||
|
|
||||||
: circular-while ( ... circular quot: ( ... obj -- ... ? ) -- ... )
|
: circular-while ( ... circular quot: ( ... obj -- ... ? ) -- ... )
|
||||||
[ clone ] dip [ <circular-iterator> ] dip (circular-while) ; inline
|
[ clone ] dip [ <circular-iterator> ] dip (circular-while) ; inline
|
||||||
|
|
||||||
|
: circular-while* ( ... circular quot: ( ... obj -- ... ? ) -- ... )
|
||||||
|
[ clone ] dip '[ [ first @ ] [ rotate-circular ] bi ] curry loop ; inline
|
||||||
|
|
Loading…
Reference in New Issue