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 @@ -253,6 +253,8 @@ import qualified Language.Haskell.TH.Lib as TH
253
253
import qualified Language.Haskell.TH.Syntax as TH
254
254
import Text.Printf (PrintfArg , formatArg , formatString )
255
255
import System.Posix.Types (CSsize (.. ))
256
+ import Data.Maybe (maybe )
257
+ import Data.Bool (bool )
256
258
257
259
-- $setup
258
260
-- >>> import Data.Text
@@ -1888,11 +1890,23 @@ isSubsequenceOf tf sf
1888
1890
| length sf > length tf = False
1889
1891
| otherwise = subseqOf tf sf
1890
1892
where
1891
- subseqOf t s
1892
- | null s = True
1893
- | null t = False
1894
- | unsafeHead s == unsafeHead t = subseqOf (unsafeTail t) (unsafeTail s)
1895
- | otherwise = subseqOf (unsafeTail t) s
1893
+ subseqOf :: Text -> Text -> Bool
1894
+ subseqOf t s =
1895
+ maybe
1896
+ True
1897
+ (\ (sc,ss) ->
1898
+ maybe
1899
+ False
1900
+ (\ (tc,ts) ->
1901
+ subseqOf ts $
1902
+ bool
1903
+ s
1904
+ ss
1905
+ (sc /= tc)
1906
+ )
1907
+ (uncons t)
1908
+ )
1909
+ (uncons s)
1896
1910
1897
1911
-------------------------------------------------------------------------------
1898
1912
-- * View patterns
You can’t perform that action at this time.
0 commit comments