File tree Expand file tree Collapse file tree 1 file changed +19
-5
lines changed Expand file tree Collapse file tree 1 file changed +19
-5
lines changed Original file line number Diff line number Diff line change @@ -254,6 +254,8 @@ import qualified Language.Haskell.TH.Lib as TH
254
254
import qualified Language.Haskell.TH.Syntax as TH
255
255
import Text.Printf (PrintfArg , formatArg , formatString )
256
256
import System.Posix.Types (CSsize (.. ))
257
+ import Data.Maybe (maybe )
258
+ import Data.Bool (bool )
257
259
258
260
-- $setup
259
261
-- >>> import Data.Text
@@ -1892,11 +1894,23 @@ isSubsequenceOf tf sf
1892
1894
| length sf > length tf = False
1893
1895
| otherwise = subseqOf tf sf
1894
1896
where
1895
- subseqOf t s
1896
- | null s = True
1897
- | null t = False
1898
- | unsafeHead s == unsafeHead t = subseqOf (unsafeTail t) (unsafeTail s)
1899
- | otherwise = subseqOf (unsafeTail t) s
1897
+ subseqOf :: Text -> Text -> Bool
1898
+ subseqOf t s =
1899
+ maybe
1900
+ True
1901
+ (\ (sc,ss) ->
1902
+ maybe
1903
+ False
1904
+ (\ (tc,ts) ->
1905
+ subseqOf ts $
1906
+ bool
1907
+ s
1908
+ ss
1909
+ (sc /= tc)
1910
+ )
1911
+ (uncons t)
1912
+ )
1913
+ (uncons s)
1900
1914
1901
1915
-------------------------------------------------------------------------------
1902
1916
-- * View patterns
You can’t perform that action at this time.
0 commit comments