"qualified.idx" binary [ serialize ] with-file-writer ;
: qualified-index ( str index -- str index' )
- over ":" split1 drop [ f ] [
+ over ":" split1 [
"qualified.idx"
dup file-exists? [ pick generate-qualified-index ] unless
load-index completions keys concat
- ] if-empty [ append ] unless-empty ;
+ ] [ drop f ] if [ append ] unless-empty ;
: word-apropos ( string -- results )
"words.idx" load-index qualified-index completions ;
vocab-words named completions ;
: qualified-named ( str -- seq/f )
- ":" split1 drop [ f ] [
+ ":" split1 [
vocabs-matching keys [
[ vocab-words ] [ vocab-name ] bi ":" append
[ over name>> append ] curry { } map>assoc
] map concat
- ] if-empty ;
+ ] [ drop f ] if ;
: words-matching ( str -- seq )
all-words named over qualified-named [ append ] unless-empty completions ;