pattern-synonyms Questions
1
Solved
I'm following this answer to learn how to pattern match on Sequences. For concreteness, imagine that I'm implementing breadth-first search over a 2-d grid using a Sequence as a queue. Using just Vi...
Comprador asked 22/11, 2022 at 1:34
1
To start off this whole thing I'm working with a pattern synonym defined as follows:
{-# Language PatternSynonyms #-}
pattern x := y <- x @ y
This allows me to run multiple pattern matches acr...
Majka asked 12/10, 2021 at 21:57
1
Solved
With PatternSynonyms (explicitly bidirectional form), the pattern-to-expr equations in effect form a function but spelled upper-case (providing you end up with an fully saturated data constr of the...
Sciuroid asked 20/1, 2021 at 11:47
1
Solved
I have the following code and I don't know what should feed at ??. Or cannot polymorphic patterns make complete?
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ViewPatterns #-}
module Data.Tuple.S...
Laurinda asked 30/6, 2019 at 1:34
3
Solved
Is it possible to use list style pattern matching on vectors?
ie
import qualified Data.Vector as V
f :: V.Vector a -> a
f (x:xs) = x
gives an error
Communicate asked 3/5, 2016 at 0:54
1
Solved
I'm trying to create a pattern synonym for a newtype with an empty map.
{-# Language PatternSynonyms #-}
import qualified Data.Map as Map
newtype StoreEnv = StoreEnv (Map.Map Int String)
derivi...
Beebeebe asked 15/4, 2018 at 18:48
1
Consider the following data type and pattern synonyms:
{-# LANGUAGE PatternSynonyms, NamedFieldPuns #-}
data Foo = Foo {
a :: Int
, b :: String
, c :: Maybe Bool
}
pattern Bar a b <- Foo {...
Ectype asked 10/8, 2015 at 1:38
1
Solved
Say I want to implement the length function for lists using pattern matching, then I could do something like this:
length' :: (Num b) => [a] -> b
length' [] = 0
length' (_:xs) = 1 + length...
Ultimatum asked 14/4, 2016 at 15:15
1
Solved
I'm getting an error when trying to define a pattern synonym based
on a GADT that has a type-level list.
I managed to boil it down to this example:
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatu...
Gulgee asked 30/3, 2016 at 22:24
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 -> ...
Conceivable asked 16/2, 2016 at 17:52
2
Solved
I'm writing a simple ADT for grid axis. In my application grid may be either regular (with constant step between coordinates), or irregular (otherwise). Of course, the regular grid is just a specia...
Vu asked 15/11, 2015 at 17:6
2
Solved
I am using Data.Sequence instead lists for better performance. With lists we can do the following
foo :: [Int] -> Int
foo [] m = m
foo (x:xs) m = ...
How can this be accomplished with Data.Se...
Distressed asked 29/6, 2015 at 1:18
1
Solved
Does some standard Haskell library define a data type like this
data ListWithEnd e a = Cons a (ListWithEnd e a)
| End e
That is a list whose terminating element carries a value of a designated ...
Feticide asked 30/3, 2015 at 17:32
2
Solved
I’m working on a library allowing a developper to control a Minitel (the french
videotex terminal).
I have a lot of constant values and I would like to know the best way to manage
them with Haskel...
Feverwort asked 22/2, 2015 at 15:57
1
Solved
I've managed to construct the following "minimal" example that shows my problem.
Provided the PatternSynonyms extension is enabled
data Vec = Vec Int Int
pattern Ve x y = Vec x y
f :: (Vec, Vec...
Careful asked 21/11, 2014 at 19:43
5
Solved
I'm a Haskell newbie, and having a bit of trouble figuring out how to pattern match a ByteString. The [Char] version of my function looks like:
dropAB :: String -> String
dropAB [] = []
dropAB ...
Beating asked 29/10, 2010 at 22:47
2
Solved
Is there a way to have something equivalent to creating "constructor aliases" in Haskell? I'm thinking similar to type aliases where you can give the type a different name but it still behaves in e...
Poinsettia asked 28/9, 2013 at 23:52
1
© 2022 - 2024 — McMap. All rights reserved.