Проверьте, начинается ли строка с другой строки в Haskell

Я хотел бы знать, начинается ли моя строка с другой строкой. Например:

startsWith "(" "(test string)" == True

Есть ли такая функция, которая поставляется с Haskell?

Всего 2 ответа


Поскольку строки представляют собой списки символов, мы можем импортировать Data.List и напрямую использовать общую функцию isPrefixOf :

isPrefixOf :: Eq a => [a] -> [a] -> Bool

без необходимости конвертировать строки в Data.Text.Text или любой другой тип строки.


с Data.Text

Вы можете использовать isPrefixOf чтобы проверить, начинается ли одна строка с другой:

# LANGUAGE OverloadedStrings #
import qualified Data.Text as T

T.isPrefixOf "(" "(test string)"

Чтобы включить Data.Text в свой проект, добавьте text как зависимость в свой файл Cabal:

build-depends:
    base >=4.7 && <5
  , text

Есть идеи?

10000