[ n>> ] [ generator>> ] bi
'[ _ generate-question* ] replicate ;
-: trim-blanks ( seq -- seq' ) words harvest unwords ;
+: trim-blanks ( seq -- seq' ) split-words harvest join-words ;
: first-n-letters ( n -- seq ) <iota> [ CHAR: a + 1string ] map ;
: alphabet-zip ( seq -- zip ) [ length <iota> [ CHAR: a + 1string ] { } map-as ] keep zip ;
M: question parse-response drop trim-blanks ;
M: stack-shuffler generate-question*
n-shufflers>> [ stack-shufflers random ] [ ] replicate-as
[ inputs first-n-letters ] keep
- '[ _ _ with-datastack unwords ] ;
+ '[ _ _ with-datastack join-words ] ;
M: question ask-question generated>> . ;
M: string-response ask-question generated>> . ;