Concatenative topics
Concatenative meta
Other languages
Meta
LOOK here if you are doing something in the Listener and having issues
The word for that is .s
in your file, set them with set-global, instead of set
Anything set with set will get lost when the top level expressions finish evaluating since files are parsed inside a with-scope
The only way to change the listener's search path is by entering USING:, USE:, etc in the listener
the first time, USE: will load the vocabulary, but any USE: or USING: in the source file that gets loaded will not affect the listener
slava: methods don't belong to a vocabulary
slava: methods belong to a generic word
slava: to invoke a generic word, you have to have the generic word's vocabulary in your search path
metaperl: I think that might trip up a lot of people
slava: well, its how java import statements owrk
slava: it only affects the source file being parsed
slava: I guess python and ruby just stick everything in one global namespace
slava: so you load a source file which loads another source file and suddently you've got 30 new identifiers in the global scope, some of which clash with your existing ones :)
If you just want to reload the source file, do refresh-all in the listener
you don't have to restart it
USE: constructors CONSTRUCTOR: employee ( fname lname rate -- obj ) ; employee-data [ [ <employee> ] input<array ] map
boa
new
T{
USING: ranges ; CHAR: a CHAR: z [a..b]
26 <iota> [ CHAR: a + ] map
Here are some ideas:
[ "(" "3" "4" "5" ")" "2" "4" "4" "-" ] { } output>sequence
[ "(" , 3 [ random-digit ] replicate
] { } make
[ call( -- obj ) ] map
"(ddd)ddd-dddd" [ { { CHAR: d [ 10 random number>string ] } [ 1string ] } case ] { } map-as concat
: reader-loop ( -- ) read1 [ dup CHAR: \ = [ drop read1 { { CHAR: d [ CHAR: 0 10 random + write1 ] } } case ] [ write1 ] if reader-loop ] when* ; : convert ( str -- str' ) [ [ reader-loop ] with-string-writer ] with-string-reader ;
[ [ "(" ] [ random-digit ] [ random-digit ] [ random-digit ] [ ") " ] [ random-digit ] [ random-digit ] [ random-digit ] [ "-" ] [ random-digit ] [ random-digit ] [ random-digit ] [ random-digit ] ] call( -- o )
now 18 years time- .
10 [ 100 random ] replicate
slava: 5 1 swap 3 3array
slava: or 5 :> x { 1 x 3 }
slava: prunedtree would suggest something like 5 1array { 1 } { 3 } surround [ ] map
DELIMITED:
Notwithstanding Gertm's suggestion that you should write them with luck, you can have tests assert that the result is a string, of the right length, etc.
How about seed-random? Don't use that word. But you can do this:
1234 <mersenne-twister> [ ... ] with-random
Now a sequence of calls to 'random' will produce the same results every time inside the quotation.
there's hierarchy support. USE: foo.bar
loads foo/bar/bar.factor
This revision created on Wed, 10 Aug 2022 20:50:38 by jmiven (new ranges vocabulary and <iota>)