Edit-distance based apropos example

darcs
slava 2006-06-26 05:50:57 +00:00
parent e4dc215220
commit afe77c6b0a
1 changed files with 12 additions and 2 deletions

View File

@ -1,6 +1,7 @@
! Copyright (C) 2006 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: arrays kernel math namespaces sequences test ;
USING: arrays compiler help io kernel math namespaces sequences
test words ;
IN: levenshtein
: <matrix> ( m n -- matrix )
@ -43,9 +44,18 @@ SYMBOL: costs
swap [ swap levenshtein-step ] each-with
] each-with
levenshtein-result
] with-scope ;
] with-scope ; compiled
[ 3 ] [ "sitting" "kitten" levenshtein ] unit-test
[ 3 ] [ "kitten" "sitting" levenshtein ] unit-test
[ 1 ] [ "freshpak" "freshpack" levenshtein ] unit-test
[ 1 ] [ "freshpack" "freshpak" levenshtein ] unit-test
: fancy-apropos ( str -- )
all-words
[ [ word-name levenshtein ] keep 2array ] map-with
[ first 3 <= ] subset
natural-sort [
second [ word-name ] keep [ help ] write-outliner
terpri
] each ;