factor/basis/sequences/product/product-docs.factor

74 lines
3.1 KiB
Factor
Raw Normal View History

2009-04-26 14:09:30 -04:00
! (c)2009 Joe Groff bsd license
2009-11-27 23:58:17 -05:00
USING: assocs help.markup help.syntax quotations sequences ;
2009-05-30 14:23:07 -04:00
IN: sequences.product
2009-04-26 14:08:15 -04:00
HELP: product-sequence
{ $class-description "A class of virtual sequences that present the cartesian product of their underlying set of sequences. Product sequences are constructed with the " { $link <product-sequence> } " word." }
{ $examples
2009-09-20 23:42:40 -04:00
{ $example """USING: arrays prettyprint sequences.product ;
2009-04-26 14:08:15 -04:00
{ { 1 2 3 } { "a" "b" "c" } } <product-sequence> >array .
2009-09-20 23:42:40 -04:00
""" """{
2009-04-26 14:08:15 -04:00
{ 1 "a" }
{ 2 "a" }
{ 3 "a" }
{ 1 "b" }
{ 2 "b" }
{ 3 "b" }
{ 1 "c" }
{ 2 "c" }
{ 3 "c" }
2009-09-20 23:42:40 -04:00
}""" } } ;
2009-04-26 14:08:15 -04:00
HELP: <product-sequence>
{ $values { "sequences" sequence } { "product-sequence" product-sequence } }
{ $description "Constructs a " { $link product-sequence } " over " { $snippet "sequences" } "." }
{ $examples
2009-09-20 23:42:40 -04:00
{ $example """USING: arrays prettyprint sequences.product ;
2009-09-23 13:57:37 -04:00
{ { 1 2 3 } { "a" "b" "c" } } <product-sequence> >array ."""
"""{
2009-04-26 14:08:15 -04:00
{ 1 "a" }
{ 2 "a" }
{ 3 "a" }
{ 1 "b" }
{ 2 "b" }
{ 3 "b" }
{ 1 "c" }
{ 2 "c" }
{ 3 "c" }
2009-09-20 23:42:40 -04:00
}""" } } ;
2009-04-26 14:08:15 -04:00
{ product-sequence <product-sequence> } related-words
HELP: product-map
{ $values { "sequences" sequence } { "quot" { $quotation ( ... seq -- ... value ) } } { "sequence" sequence } }
2009-04-26 14:08:15 -04:00
{ $description "Calls " { $snippet "quot" } " for every element of the cartesian product of " { $snippet "sequences" } " and collects the results from " { $snippet "quot" } " into an output sequence." }
{ $notes { $snippet "[ ... ] product-map" } " is equivalent to, but more efficient than, " { $snippet "<product-sequence> [ ... ] map" } "." } ;
HELP: product-map-as
{ $values { "sequences" sequence } { "quot" { $quotation ( ... seq -- ... value ) } } { "exemplar" sequence } { "sequence" sequence } }
{ $description "Calls " { $snippet "quot" } " for every element of the cartesian product of " { $snippet "sequences" } " and collects the results from " { $snippet "quot" } " into an output sequence the same type as the " { $snippet "exemplar" } " sequence." } ;
2009-11-27 23:58:17 -05:00
HELP: product-map>assoc
{ $values { "sequences" sequence } { "quot" { $quotation ( ... seq -- ... key value ) } } { "exemplar" assoc } { "assoc" assoc } }
2009-11-27 23:58:17 -05:00
{ $description "Calls " { $snippet "quot" } " for every element of the cartesian product of " { $snippet "sequences" } " and collects the results from " { $snippet "quot" } " into an output assoc." } ;
2009-04-26 14:08:15 -04:00
HELP: product-each
{ $values { "sequences" sequence } { "quot" { $quotation ( ... seq -- ... ) } } }
2009-04-26 14:08:15 -04:00
{ $description "Calls " { $snippet "quot" } " for every element of the cartesian product of " { $snippet "sequences" } "." }
{ $notes { $snippet "[ ... ] product-each" } " is equivalent to, but more efficient than, " { $snippet "<product-sequence> [ ... ] each" } "." } ;
{ product-map product-each } related-words
ARTICLE: "sequences.product" "Product sequences"
"The " { $vocab-link "sequences.product" } " vocabulary provides a virtual sequence and combinators for manipulating the cartesian product of a set of sequences."
{ $subsections
product-sequence
<product-sequence>
product-map
product-map-as
2009-11-27 23:58:17 -05:00
product-map>assoc
product-each
} ;
2009-04-26 14:08:15 -04:00
ABOUT: "sequences.product"