Skip to content

Commit 4f7c12e

Browse files
committed
Implement a correct isSubsequenceOf function
Closes #4
1 parent c618817 commit 4f7c12e

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

ch11/AsPatterns.hs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ module AsPatterns where
33
import Data.Char (toUpper)
44

55
isSubsequenceOf :: Eq a => [a] -> [a] -> Bool
6-
isSubsequenceOf [] _ = True
7-
isSubsequenceOf _ [] = False
8-
isSubsequenceOf s@(x:xs) (y:ys) =
9-
(x == y && isSubsequenceOf xs ys) || isSubsequenceOf s ys
6+
isSubsequenceOf s t = go s t
7+
where
8+
go [] _ = True
9+
go _ [] = False
10+
go (a:as) (b:bs) = (a == b && go as bs) || go s bs
1011

1112
capitalizeWords :: String -> [(String, String)]
1213
capitalizeWords = go . words

0 commit comments

Comments
 (0)