> Yep, you can also use the syntax for it:
>
> << { "foo "bar" "baz" } [ create-word-in define-symbol ] each >>
Thank you.
My program needs to make a symbol every time it finds '_'.
It became as follows:
SYMBOL: *anonymouse-var-no* 0 *anonymouse-var-no* set-global
: reset-anonymouse-var-no ( -- ) 0 *anonymouse-var-no* set-global ;
: inc-anonymouse-var-no ( -- )
*anonymouse-var-no* get-global 1 + *anonymouse-var-no* set-global ;
: generate-anonymouse-var ( -- var-symbol )
[
inc-anonymouse-var-no
*anonymouse-var-no* get-global "ANONYMOUSE-VAR-#%d_" sprintf
"factor-logica" create-word dup dup
define-symbol
LOGIC-VAR swap set-global
] with-compilation-unit ;
: replace-anonymouse-vars ( before -- after )
{
{ [ dup _ = ] [ drop generate-anonymouse-var ] }
{ [ dup sequence? ] [ [ replace-anonymouse-vars ] map ] }
{ [ dup tuple? ] [
[ class-of 1array ] [ tuple-slots ] bi
[ replace-anonymouse-vars ] map append >tuple ] }
[ ]
} cond ;
--
KUSUMOTO Norio
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk