В Haskell есть много замечательных библиотек регулярных выражений, но у нас есть лучшие инструменты.Давайте сейчас придерживаться стандартных строк Haskell (то есть списков Char).Основы находятся в Data.List - http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.3.0.0/Data-List.html. У вас есть строки, строки, слова, слова, перебор, отбрасывание и т. Д.Также isPrefixOf
и isInfixOf
и т. Д.
Вы можете в конечном итоге написать свои собственные рекурсивные функции довольно напрямую, но это тоже очень просто.Единственными действительно отсутствующими операциями являются операции разделения, для которых вы можете использовать превосходный пакет brent: http://hackage.haskell.org/package/split
По сути, идея заключается в том, что вы хотите выполнять пошаговую обработку потоков символов.
Не все настолько эффективно, насколько это возможно, тем более что строковое представление не так эффективно.Но если / когда вы переходите к другим типам данных, основные понятия о том, как вы обрабатываете вещи, будут переводиться непосредственно из базовых строк.