Boyer-Moore string search: Difference between revisions
m
→{{header|Emacs Lisp}}: minor cleanup
m (→{{header|Emacs Lisp}}: minor cleanup) |
|||
Line 16:
;; Compile the pattern to a right most position map
(defun bm_compile_pattern (pattern)
(let
(
rightMap
)
Line 28 ⟶ 29:
"Boyer-Moore string search"
(let ((startPos 0)
▲ (setq rightMap (bm_compile_pattern pattern))
;; Continue this loop when no result and not exceed the text length
Line 40 ⟶ 38:
(let ((idx (length pattern)) (skip1 nil))
)
)
(setq result startPos)
▲ (if (or (not skip1) (<= skip1 0))
)
)
result
)
)
(let ((pattern "alfalfa")
|