Merge branch 'master' of git://factorcode.org/git/factor
commit
67fd6b34dc
|
@ -354,6 +354,22 @@ HELP: spread
|
||||||
|
|
||||||
{ bi* tri* spread } related-words
|
{ bi* tri* spread } related-words
|
||||||
|
|
||||||
|
HELP: to-fixed-point
|
||||||
|
{ $values { "object" object } { "quot" { $quotation "( object(n) -- object(n+1) )" } } { "object(n)" object } }
|
||||||
|
{ $description "Applies the quotation repeatedly with " { $snippet "object" } " as the initial input until the output of the quotation equals the input." }
|
||||||
|
{ $examples
|
||||||
|
{ $example
|
||||||
|
"USING: combinators kernel math prettyprint sequences ;"
|
||||||
|
"IN: scratchpad"
|
||||||
|
": flatten ( sequence -- sequence' )"
|
||||||
|
" \"flatten\" over index"
|
||||||
|
" [ [ 1 + swap nth ] [ nip dup 2 + ] [ drop ] 2tri replace-slice ] when* ;"
|
||||||
|
""
|
||||||
|
"{ \"flatten\" { 1 { 2 3 } \"flatten\" { 4 5 } { 6 } } } [ flatten ] to-fixed-point ."
|
||||||
|
"{ 1 { 2 3 } 4 5 { 6 } }"
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
HELP: alist>quot
|
HELP: alist>quot
|
||||||
{ $values { "default" "a quotation" } { "assoc" "a sequence of quotation pairs" } { "quot" "a new quotation" } }
|
{ $values { "default" "a quotation" } { "assoc" "a sequence of quotation pairs" } { "quot" "a new quotation" } }
|
||||||
{ $description "Constructs a quotation which calls the first quotation in each pair of " { $snippet "assoc" } " until one of them outputs a true value, and then calls the second quotation in the corresponding pair. Quotations are called in reverse order, and if no quotation outputs a true value then " { $snippet "default" } " is called." }
|
{ $description "Constructs a quotation which calls the first quotation in each pair of " { $snippet "assoc" } " until one of them outputs a true value, and then calls the second quotation in the corresponding pair. Quotations are called in reverse order, and if no quotation outputs a true value then " { $snippet "default" } " is called." }
|
||||||
|
|
|
@ -180,3 +180,6 @@ M: hashtable hashcode*
|
||||||
dup assoc-size 1 eq?
|
dup assoc-size 1 eq?
|
||||||
[ assoc-hashcode ] [ nip assoc-size ] if
|
[ assoc-hashcode ] [ nip assoc-size ] if
|
||||||
] recursive-hashcode ;
|
] recursive-hashcode ;
|
||||||
|
|
||||||
|
: to-fixed-point ( object quot: ( object(n) -- object(n+1) ) -- object(n) )
|
||||||
|
[ keep over = ] keep [ to-fixed-point ] curry unless ; inline recursive
|
||||||
|
|
Loading…
Reference in New Issue