Запитання з тегом «pattern-matching»

Використовуйте цей тег для запитань щодо тестування того, чи структура даних має певну форму чи містить певні значення в певних місцях. Багато функціональних мов забезпечують конструкції відповідності шаблонів. Більшість запитань у цьому тезі також має містити тег для мови, якою ви програмуєте. НЕ ВИКОРИСТОВУЙТЕ ЦІЙ МЕТИ ДЛЯ РЕГУЛЯРНИХ ЕКСПРЕСІЙНИХ ПИТАНЬ, ВИКОРИСТОВУЙТЕ [regex] ВСТАНОВИТИ; аналогічно для відповідності шаблонів (глобулювання) в оболонках, схожих на POSIX, використовуйте [glob].

10
Нечіткий пошук у JavaScript, який має сенс
Я шукаю бібліотеку нечіткого пошуку JavaScript для фільтрації масиву. Я спробував використовувати fuzzyset.js і fuse.js , але результати жахливі (є демо-версії, які можна спробувати на пов'язаних сторінках). Прочитавши деякий час на відстані Левенштейна, це здається мені поганим наближенням того, що користувачі шукають під час введення. Для тих, хто не знає, …

1
Як зіставити шаблон з кількома значеннями в Scala?
Скажімо, я хочу обробляти кілька повернених значень віддаленої служби, використовуючи той самий код. Я не знаю, як це висловити в Scala: code match { case "1" => // Whatever case "2" => // Same whatever case "3" => // Ah, something different } Я знаю, що можу використовувати метод вилучення …

10
Як замінити застосування в супутнику класу справи
Тож ось ситуація. Я хочу визначити клас справи таким чином: case class A(val s: String) і я хочу визначити об'єкт, щоб переконатися, що коли я створюю екземпляри класу, значення 's' завжди має великі регістри, приблизно так: object A { def apply(s: String) = new A(s.toUpperCase) } Однак це не працює, …

1
Scala кілька типів збігу шаблонів
Мені цікаво, як я можу використовувати збіг декількох типів. Я маю: abstract class MyAbstract case class MyFirst extends MyAbstract case class MySecond extends MyAbstract case class MyThird extends MyAbstract // shouldn't be matched and shouldn't call doSomething() val x: MyAbstract = MyFirst x match { case a: MyFirst => doSomething() …


3
Як я можу використовувати список фіксованої мінімальної довжини в повний та елегантний спосіб?
Зараз я маю справу з такою функцією: foo = (\(a:b:c:d:e:f:_) -> foobar a b c d e f) . (++ repeat def) Іншими словами, даючи список, він використовує перші шість елементів для чогось, і якщо список менше шести елементів, він використовує defяк очікування для відсутніх. Це загальна сума, але шматочки …

1
Різниця між типом виводу методу та параметрами типу класу у відповідності шаблонів
Чому відповідність шаблонів працює по-різному, коли параметр типу походить від методу, що входить в комплект, на відміну від класу, що додає? Наприклад, trait Base[T] case class Derived(v: Int) extends Base[Int] class Test[A] { def method(arg: Base[A]) = { arg match { case Derived(_) => 42 } } } дає помилку …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.