> 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
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to