}
v[name] = new Word(vocab,name,source,func);
}
+
+Factor.prototype.remove_word = function(vocab,name) {
+ var v = factor.vocabs[vocab];
+ if(!v) {
+ v = { };
+ factor.vocabs[vocab] = v;
+ }
+ delete v[name];
+}
Factor.prototype.define_word = function(name, source, func, next) {
factor.vocabs[factor.in_vocab][name] = new Word(factor.in_vocab, name, source, function(next) {
factor.call_next(next);
});
+factor.add_word("kernel", "forget", "primitive", function(next) {
+ var stack = factor.cont.data_stack;
+ var word = stack.pop();
+ factor.remove_word(word.vocab, word.name);
+ factor.call_next(next);
+});
+
/* Math vocabulary */
factor.add_word("math", "*", "primitive", function(next) {
var stack = factor.cont.data_stack;