Factor/FAQ/Unanswered questions

Add ideas for questions here, and we'll answer them and incorporate the answers into the FAQ.

Meanwhile Terrence Brannon has started the NeophyteFAQ.

Q: How are hashes implemented in Factor? Generically, how can hashes be implemented efficiently within a language where the principle data structure is a stack?

I've added an answer to Develop.

Q: how do I inspect the source code of a word?

  • - metaperl

Q: If I were going to create a series of vocabularies based around text, is there hierarchy support? e.g. text.lorem, text.leetspeak, text.balanced

or should they have just underscores in their name? textlorem

A: there's hierarchy support. USE: foo.bar loads foo/bar/bar.factor

Q: Say I have '5' on the stack, and I want to create a sequence { 1 x 3 } and place 5 where the x is, what's the best way to do this?

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

Q: I keep USE:ing source files from the listener but when I play with them in the listener, they do not have the search paths that the source file loaded!


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 :)

Q: I keep killing the listener and restarting to make sure all my definitions get refreshed. Is there a simpler way?

A: if you just want to reload the source file, do refresh-all in the listener

you don't have to restart it

This revision created on Wed, 24 Feb 2010 15:12:26 by metaperl