Вопросы с тегом 'pattern-matching'

Используйте этот тег для вопросов о проверке того, имеет ли структура данных определенную форму или содержит определенные значения в определенных местах. Многие функциональные языки предоставляют конструкции, соответствующие шаблону. Большинство вопросов в этом теге также должны иметь тег для языка, в котором вы программируете. Не используйте этот тег для вопросов регулярного выражения, вместо этого используйте тег regex; аналогично, для сопоставления шаблонов (globbing) в POSIX-подобных оболочках используйте тег glob.
6
ответов

Рекомендуется ли всегда иметь исчерпывающие совпадения шаблонов в Haskell, даже для «невозможных» случаев?

Рекомендуется ли всегда иметь исчерпывающие совпадения шаблонов в Haskell, даже для «невозможных» случаев? Например, в следующем коде я сопоставляю шаблоны на «аккумуляторе» foldr. Я полностью контролирую содержимое аккумулятора, потому что я...
задан 07.05.2009 в 07:20
5
ответов

Не должны ли статические шаблоны быть статическими?

Я просто нашел ошибку в некотором коде, который я не писал, и я немного удивлен: Pattern pattern = Pattern.compile("\d{1,2}.\d{1,2}.\d{4}"); Matcher matcher = pattern.matcher(s); Несмотря на то, что этот код плохо работает на входных данн...
задан 08.02.2011 в 16:53
3
ответа

Scala - сопоставление образцов с кортежем связанных типов

У меня есть следующая иерархия классов: class A class B extends A class C extends A , тогда существует еще один класс, который принимает экземпляры этих классов, и существует метод, в котором возможны два случая сопоставления шаблонов:...
задан 16.08.2012 в 14:13
4
ответа

Нечувствительный к регистру шаблон, соответствующий строковым спискам

Я пытаюсь проанализировать аргументы командной строки в приложении F #. Я использую сопоставление шаблонов по списку параметров, чтобы выполнить его. Что-то вроде: let rec parseCmdLnArgs = function | [] -> { OutputFile = None ; OtherP...
задан 08.02.2010 в 23:25
10
ответов

PHP - Как найти дубликаты группировок значений в массиве

У меня есть массив строковых значений, которые иногда образуют повторяющиеся шаблоны значений ('a', 'b', 'c', 'd') $array = array( 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'c', 'd', ); Я хотел бы найти повторяющиеся шаблоны, ос...
задан 22.01.2014 в 23:29
2
ответа

Как LCP помогает найти количество вхождений шаблона?

Я прочитал, что Самый длинный общий префикс (LCP) можно использовать для поиска числа вхождений шаблона в строке. В частности, вам просто нужно создать массив суффиксов текста, отсортировать его, а затем вместо выполнения двоичного поиска н...
задан 07.07.2012 в 10:18
5
ответов

Выполнение сопоставления шаблонов в C #

В Scala вы можете использовать сопоставление образцов для получения результата в зависимости от типа ввода. Например: val title = content match { case blogPost: BlogPost => blogPost.blog.title + ": " + blogPost.title case blog: Blo...
задан 17.05.2011 в 15:32
2
ответа

Какова теория алгоритма соответствия шаблону KMP? [закрыто]

Какова теоретическая основа алгоритма сопоставления шаблонов KMP? Я понимаю сам алгоритм, но не понимаю, как Кнут, Моррис и Пратт изобрели этот алгоритм. Было ли какое-либо математическое доказательство? Можете ли вы дать ссылку, пожалу...
задан 10.12.2011 в 06:24
3
ответа

Что означает «~» в Haskell?

Я изучаю библиотеку mtl и пытаюсь сделать некоторые собственные MonadTransformers. Я проверял объявление Control.Monad.State.StateT , и по всему коду я вижу этот синтаксис: execStateT :: (Monad m) => StateT s m a -> s -> m s exe...
задан 15.02.2010 в 02:05
2
ответа

В Haskell, какова область применения where, когда речь идет о охранниках?

Я знаю, что они не выдерживают совпадения шаблонов (т. е. вам нужно переписать предложение «где» для каждого шаблона), но как работает надпись для охранников? например. Это работает? myFunction x1 x2 | x1 > x2 = addOne x1 | x1 &...
задан 15.03.2012 в 15:03