Описание тега pattern-synonyms
Абстракция шаблонов в смысле сопоставления с образцом
2
ответа
Соответствие шаблону Data.Sequence, как списки
Я использую Data.Sequence вместо списков для лучшей производительности. Со списками мы можем сделать следующее foo :: [Int] -> Int foo [] m = m foo (x:xs) m = ... Как это можно сделать с Data.Sequence, Я пробовал следующее: foo:: S.Seq Int -> …
29 июн '15 в 01:18
0
ответов
Используйте алгоритм lesk для замены слов в предложении синонимами
Я пытаюсь заменить слова в предложении, используя алгоритм lesk. В настоящее время я сделал с Wordnet. Я не могу интегрировать lesk в этом. Может кто-то помочь мне с этим. from nltk.corpus import wordnet from nltk.tokenize import word_tokenize from …
31 авг '18 в 13:45
1
ответ
Как я могу написать этот синоним шаблона без неоднозначных ошибок типа?
С помощью ViewPatterns а также Data.TypeableМне удалось написать функцию, которая позволяет мне написать что-то похожее на анализ случаев на типах. Заметим: {-# LANGUAGE GADTs, PatternSynonyms, RankNTypes, ScopedTypeVariables , TypeApplications, Typ…
19 янв '17 в 23:05
1
ответ
Объединение моделей
Рассмотрим следующие синонимы типа данных и шаблона: {-# LANGUAGE PatternSynonyms, NamedFieldPuns #-} data Foo = Foo { a :: Int , b :: String , c :: Maybe Bool } pattern Bar a b <- Foo { a, b } pattern Baz c <- Foo { c } Я хотел бы соответство…
10 авг '15 в 01:38
1
ответ
Используйте буквенные числа в шаблонах Fin
С одной стороны, я могу использовать #_ строить Fins из литералов: open import Data.Fin data I'mFinnish : Set where Mk : Fin 5 → I'mFinnish foo : I'mFinnish foo = Mk (# 3) С другой стороны, я могу использовать литералы для сопоставления с образцом н…
15 ноя '17 в 04:03
2
ответа
Сравнение паттернов Хаскелла по векторам
Можно ли использовать сопоставление шаблонов стиля списка на векторах? т.е. import qualified Data.Vector as V f :: V.Vector a -> a f (x:xs) = x выдает ошибку
03 май '16 в 00:54
1
ответ
Как сопоставить шаблон с пустым вектором в Haskell?
Скажем, я хочу реализовать функцию длины для списков, используя сопоставление с образцом, тогда я мог бы сделать что-то вроде этого: length' :: (Num b) => [a] -> b length' [] = 0 length' (_:xs) = 1 + length' xs Могу ли я сделать что-то подобно…
14 апр '16 в 15:15
1
ответ
Замена слова случайно выбранными синонимами в строке?
Я нашел следующий код в Python, который выполняет ту же работу, но он заменяет только выбранный вручную синоним. import nltk from nltk.corpus import wordnet synonyms = [] string="i love winter season" for syn in wordnet.synsets("love"): for l in syn…
21 ноя '18 в 12:10
1
ответ
Задание изоморфизмов вручную для синонима однонаправленного шаблона
Вероятно, нет способа сделать это, но я просто хотел спросить на всякий случай. У меня есть тип данных, это простой кортеж, как это: data Tup a = T a a У меня есть синоним шаблона как это: pattern (:?) :: () => Floating a => a -> a -> Tu…
26 апр '16 в 00:23
1
ответ
Использование ViewPatterns и PatternSynonyms для простого сопоставления с образцом
Допустим, у меня есть GADT для такого языка (мой настоящий язык гораздо более сложный, около 50 конструкторов, но это упрощенный пример): data Expr t where Add :: Expr t -> Expr t -> Expr t Sub :: Expr t -> Expr t -> Expr t Mult :: Expr …
08 май '17 в 01:38
2
ответа
Псевдонимы конструкторов Haskell
Есть ли способ создать что-то эквивалентное созданию псевдонимов конструктора в Haskell? Я думаю, что это похоже на псевдонимы типов, где вы можете дать типу другое имя, но он все равно ведет себя как псевдоним типа. Мой вариант использования - это …
28 сен '13 в 23:52
0
ответов
Образец синонимов производного чтения?
Синонимы шаблона обеспечивают краткий способ выражения значения; также они могут предоставить абстрактное имя, чтобы избежать взлома клиентским модулем данных. Вот не очень полезный пример для обсуждения: data MyNum = MkNum Int pattern Zero :: MyNum…
07 июн '18 в 09:48
2
ответа
Haskell - Использование константы в сопоставлении с образцом
Допустим, у меня есть следующий код (текст в <> это сокращение, а не часть кода): data A = <something> defaultA :: A defaultA = <Really complicated expression of type A> Теперь я хочу, чтобы функция соответствовала шаблону defaultA…
16 фев '16 в 09:54
1
ответ
Почему все синонимы рекурсивного шаблона отклоняются?
{-# LANGUAGE PatternSynonyms, ViewPatterns #-} data Quun = Foo | Bar | Oink Quun fooey :: Quun -> Bool fooey Foo = True fooey (Oink Yum) = True fooey _ = False pattern Yum <- (fooey -> True) Это не компилируется (по крайней мере, в GHC-7.10…
16 фев '16 в 17:52
5
ответов
Haskell Bytestrings: Как сопоставить шаблон?
Я новичок в Haskell, и у меня возникли проблемы с выяснением того, как шаблон соответствует ByteString, [Char] Версия моей функции выглядит так: dropAB :: String -> String dropAB [] = [] dropAB (x:[]) = x:[] dropAB (x:y:xs) = if x=='a' &&…
29 окт '10 в 22:47
2
ответа
Проблема с синонимами типа Haskell
Это дает мне следующую ошибку Не в области: конструктор данных Blah Зачем? Я думал, что я могу использовать синоним типа везде, где я могу использовать Person data Person = Person { weight :: Int, height :: Int } type Blah = Person person1 :: Blah p…
05 фев '14 в 19:54
1
ответ
Почему я не могу сопоставить образец с соотношением в Haskell?
Я пытаюсь сопоставить образец с соотношением: isValid :: Ratio Int -> Bool isValid (num % den) = ... Тем не менее, это дает: Parse error in pattern: num % den Интересно, что Data.Ratio Пакет определяет numerator а также denominator таким образом,…
25 окт '15 в 01:55
1
ответ
Константы в Haskell и сопоставление с образцом
Как можно определить макрос константу в Haskell? В частности, я бы хотел, чтобы следующий фрагмент выполнялся без наложения второго сопоставления с образцом. someconstant :: Int someconstant = 3 f :: Int -> IO () f someconstant = putStrLn "Arg is…
15 фев '16 в 19:14
2
ответа
Как обрабатывать множество констант в Haskell?
Я работаю над библиотекой, позволяющей разработчику управлять Minitel (французский терминал видеотекса). У меня много постоянных значений, и я хотел бы знать, как лучше всего управлять ими с помощью Haskell. Это распространенный вопрос среди начинаю…
22 фев '15 в 15:57
1
ответ
Синоним шаблона не может объединять типы в списке на уровне типов
Я получаю сообщение об ошибке при попытке определить синоним шаблона на основе GADT, который имеет список уровня типа. Мне удалось свести это к следующему примеру: {-# LANGUAGE GADTs #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE DataKinds #-} {-#…
30 мар '16 в 22:24