This doesn't list words backwards, but is an oft used approach: : counted.word ( k n nt -- k' n' ) 2>r dup if 1- 2r> .word else 2r> drop then ; : counted-wordlist-words ( k wid -- k' ) 0 swap cr ['] counted.word map-wordlist drop ; 30 value ktop# : ktop ( k -- ) 0 max dup to ktop# context @ counted-wordlist-words drop ; : top ( -- ) ktop# ktop ;
The above, rather inefficient code, works on android gforth. Other istallations may need some tweeks. Listing words backwards isn't terribly hard, but requires storing the links somewhere: recursion, on the stack or return stack usually; in an array; or as extra link field in the dictionary headers.