diff --git a/extra/boyer-moore/boyer-moore-docs.factor b/extra/boyer-moore/boyer-moore-docs.factor index 994971e208..d87f431ee7 100644 --- a/extra/boyer-moore/boyer-moore-docs.factor +++ b/extra/boyer-moore/boyer-moore-docs.factor @@ -1,11 +1,11 @@ ! Copyright (C) 2010 Dmitry Shubin. ! See http://factorcode.org/license.txt for BSD license. -USING: help.markup help.syntax kernel sequences ; +USING: boyer-moore.private help.markup help.syntax kernel sequences ; IN: boyer-moore HELP: { $values - { "pat" sequence } { "bm" object } + { "pat" sequence } { "bm" boyer-moore } } { $description "Given a pattern performs pattern preprocessing and returns " @@ -43,7 +43,7 @@ ARTICLE: "boyer-moore" "The Boyer-Moore algorithm" { $heading "Summary" } "The " { $vocab-link "boyer-moore" } " vocabulary " "implements a Boyer-Moore string search algorithm with " -"so-called 'strong good suffix shift rule'. Since agorithm is " +"so-called 'strong good suffix shift rule'. Since algorithm is " "alphabet-independent it is applicable to searching in any " "collection that implements " { $links "sequence-protocol" } "." @@ -51,8 +51,8 @@ ARTICLE: "boyer-moore" "The Boyer-Moore algorithm" "Let " { $snippet "n" } " and " { $snippet "m" } " be lengths " "of the sequences being searched " { $emphasis "in" } " and " { $emphasis "for" } " respectively. Then searching runs in " -{ $snippet "O(n)" } " time in it's worst case using additional " -{ $snippet "O(m)" } " space. Preprocessing phase runs in " +{ $snippet "O(n)" } " time in its worst case using additional " +{ $snippet "O(m)" } " space. The preprocessing phase runs in " { $snippet "O(m)" } " time." ; diff --git a/extra/boyer-moore/boyer-moore.factor b/extra/boyer-moore/boyer-moore.factor index 4de88c4a1d..aba3f614a1 100644 --- a/extra/boyer-moore/boyer-moore.factor +++ b/extra/boyer-moore/boyer-moore.factor @@ -53,10 +53,12 @@ TUPLE: boyer-moore pattern bc-table gs-table ; pat length :> plen seq length plen - :> lim from - [ dup lim <= - [ seq pat pick plen mismatch? - [ 2dup + seq nth-unsafe bm do-shift t ] [ f ] if* - ] [ drop f f ] if + [ + dup lim <= + [ + seq pat pick plen mismatch? + [ 2dup + seq nth-unsafe bm do-shift t ] [ f ] if* + ] [ drop f f ] if ] loop ; inline PRIVATE> diff --git a/extra/z-algorithm/z-algorithm.factor b/extra/z-algorithm/z-algorithm.factor index 12306dc080..bd312755a3 100644 --- a/extra/z-algorithm/z-algorithm.factor +++ b/extra/z-algorithm/z-algorithm.factor @@ -19,8 +19,9 @@ IN: z-algorithm r k - 1 + :> b seq Z Zk' b < [ Zk' Z push l r ] ! still inside - [ seq r 1 + seq b [ tail-slice ] 2bi@ lcp :> q - q b + Z push k q r + + [ + seq r 1 + seq b [ tail-slice ] 2bi@ lcp :> q + q b + Z push k q r + ] if ; inline : (z-value) ( seq Z l r k -- seq Z l r )