Search results
fromMaybe :: forall a. a -> Maybe a -> a
Takes a default value, and a Maybe
value. If the Maybe
value is
Nothing
the default value is returned, otherwise the value inside the
Just
is returned.
fromMaybe x Nothing == x
fromMaybe x (Just y) == y
withDefault :: forall a. a -> Maybe a -> a
If the given value is Nothing
, return the default. Otherwise return the
value.
withDefault 2 Nothing -- 2
withDefault 2 (Just 1) -- 1
intercalate :: forall f m. Foldable f => Monoid m => m -> f m -> m
Fold a data structure, accumulating values in some Monoid
,
combining adjacent elements using the specified separator.
For example:
> intercalate ", " ["Lorem", "ipsum", "dolor"]
= "Lorem, ipsum, dolor"
> intercalate "*" ["a", "b", "c"]
= "a*b*c"
> intercalate [1] [[2, 3], [4, 5], [6, 7]]
= [2, 3, 1, 4, 5, 1, 6, 7]
intercalate :: forall f m. Foldable1 f => Semigroup m => m -> f m -> m
Fold a data structure using a Semigroup
instance,
combining adjacent elements using the specified separator.
surround :: forall f m. Foldable f => Semigroup m => m -> f m -> m
fold
but with each element surrounded by some fixed value.
For example:
> surround "*" []
= "*"
> surround "*" ["1"]
= "*1*"
> surround "*" ["1", "2"]
= "*1*2*"
> surround "*" ["1", "2", "3"]
= "*1*2*3*"
consMax :: forall a f. Foldable f => Ord a => a -> f a -> a
consMin :: forall a f. Foldable f => Ord a => a -> f a -> a
peek :: forall s w a. ComonadStore s w => s -> w a -> a
track :: forall t w a. ComonadTraced t w => t -> w a -> a
buildLeaf :: forall e f p v. ElementBuilder e f p v => e -> f p -> v
add :: forall a. Semiring a => a -> a -> a
append :: forall a. Semigroup a => a -> a -> a
conj :: forall a. HeytingAlgebra a => a -> a -> a
const :: forall a b. a -> b -> a
Returns its first argument and ignores its second.
const 1 "hello" = 1
It can also be thought of as creating a function that ignores its argument:
const 1 = \_ -> 1
disj :: forall a. HeytingAlgebra a => a -> a -> a
div :: forall a. EuclideanRing a => a -> a -> a
gcd :: forall a. Eq a => EuclideanRing a => a -> a -> a
The greatest common divisor of two values.
genericAdd :: forall a rep. Generic a rep => GenericSemiring rep => a -> a -> a
A Generic
implementation of the add
member from the Semiring
type class.
genericAdd' :: forall a. GenericSemiring a => a -> a -> a
genericAppend :: forall a rep. Generic a rep => GenericSemigroup rep => a -> a -> a
A Generic
implementation of the append
member from the Semigroup
type class.
genericAppend' :: forall a. GenericSemigroup a => a -> a -> a
genericConj :: forall a rep. Generic a rep => GenericHeytingAlgebra rep => a -> a -> a
A Generic
implementation of the conj
member from the HeytingAlgebra
type class.
genericConj' :: forall a. GenericHeytingAlgebra a => a -> a -> a
genericDisj :: forall a rep. Generic a rep => GenericHeytingAlgebra rep => a -> a -> a
A Generic
implementation of the disj
member from the HeytingAlgebra
type class.
genericDisj' :: forall a. GenericHeytingAlgebra a => a -> a -> a
genericImplies :: forall a rep. Generic a rep => GenericHeytingAlgebra rep => a -> a -> a
A Generic
implementation of the implies
member from the HeytingAlgebra
type class.
genericImplies' :: forall a. GenericHeytingAlgebra a => a -> a -> a
genericMul :: forall a rep. Generic a rep => GenericSemiring rep => a -> a -> a
A Generic
implementation of the mul
member from the Semiring
type class.
genericMul' :: forall a. GenericSemiring a => a -> a -> a
genericSub :: forall a rep. Generic a rep => GenericRing rep => a -> a -> a
A Generic
implementation of the sub
member from the Ring
type class.
genericSub' :: forall a. GenericRing a => a -> a -> a
implies :: forall a. HeytingAlgebra a => a -> a -> a
lcm :: forall a. Eq a => EuclideanRing a => a -> a -> a
The least common multiple of two values.
leftDiv :: forall a. DivisionRing a => a -> a -> a
Left division, defined as leftDiv a b = recip b * a
. Left and right
division are distinct in this module because a DivisionRing
is not
necessarily commutative.
If the type a
is also a EuclideanRing
, then this function is
equivalent to div
from the EuclideanRing
class. When working
abstractly, div
should generally be preferred, unless you know that you
need your code to work with noncommutative rings.
max :: forall a. Ord a => a -> a -> a
Take the maximum of two values. If they are considered equal, the first argument is chosen.
min :: forall a. Ord a => a -> a -> a
Take the minimum of two values. If they are considered equal, the first argument is chosen.
mod :: forall a. EuclideanRing a => a -> a -> a
mul :: forall a. Semiring a => a -> a -> a
rightDiv :: forall a. DivisionRing a => a -> a -> a
Right division, defined as rightDiv a b = a * recip b
. Left and right
division are distinct in this module because a DivisionRing
is not
necessarily commutative.
If the type a
is also a EuclideanRing
, then this function is
equivalent to div
from the EuclideanRing
class. When working
abstractly, div
should generally be preferred, unless you know that you
need your code to work with noncommutative rings.
sub :: forall a. Ring a => a -> a -> a
call :: forall s. IsString s => Monoid s => s -> s -> s
Syntax for CSS function call.
ract :: forall g s. RightAction g s => s -> g -> s
maddL :: forall x r. LeftModule x r => x -> x -> x
maddR :: forall x r. RightModule x r => x -> x -> x
mmulR :: forall x r. RightModule x r => x -> r -> x
msubL :: forall x r. LeftModule x r => x -> x -> x
msubR :: forall x r. RightModule x r => x -> x -> x
bindTo :: forall f o. f -> o -> f
defaultUndef :: forall a. a -> a -> a
join :: forall a. JoinSemilattice a => a -> a -> a
meet :: forall a. MeetSemilattice a => a -> a -> a
pathAppend :: forall m. XPathLike m => m -> m -> m
Put a path seperator between two XPaths and return the resulting XPath.
pathAppendNSx :: forall m. XPathLike m => m -> m -> m
Useful variant of pathAppend
needed for some XPath implementations;
insert a separator with a dummy namespace ("x") for the second XPath
fragment. For example:
root /? "record" /? "identifier" == "/x:record/x:identifier"
.
and :: forall a. Binary a => a -> a -> a
join :: forall a. JoinSemilattice a => a -> a -> a
maddL :: forall x r. LeftModule x r => x -> x -> x
maddR :: forall x r. RightModule x r => x -> x -> x
meet :: forall a. MeetSemilattice a => a -> a -> a
mmulR :: forall x r. RightModule x r => x -> r -> x
msubL :: forall x r. LeftModule x r => x -> x -> x
msubR :: forall x r. RightModule x r => x -> x -> x
nand :: forall α. HeytingAlgebra α => α -> α -> α
nor :: forall α. HeytingAlgebra α => α -> α -> α
or :: forall a. Binary a => a -> a -> a
patch :: forall a d. Patch a d => a -> d -> a
reciprocal :: forall n n1 n2 a r. Add n2 1 n1 => Add n1 1 n => Arity a n => Divisible r => Eq r => EuclideanRing r => Leadable r => Ord r => Pad n2 (Polynomial r) a => Peel r r => Unpad n2 (Polynomial r) a => a -> a -> a
Computes the reciprocal of the first polynomial in the extension whose minimal polynomial is provided by the second polynomial
xor :: forall a. Binary a => a -> a -> a
xor :: forall a. HeytingAlgebra a => a -> a -> a
xor :: forall α. HeytingAlgebra α => α -> α -> α
_add :: forall a. HasAdd a => a -> a -> a
_and :: forall a. HasAnd a => a -> a -> a
_divide :: forall a. HasDivide a => a -> a -> a
_multiply :: forall a. HasMultiply a => a -> a -> a
_or :: forall a. HasOr a => a -> a -> a
_power :: forall a. HasPower a => a -> a -> a
_remainder :: forall a. HasRemainder a => a -> a -> a
_subtract :: forall a. HasSubtract a => a -> a -> a
add :: forall a. HasAdd a => a -> a -> a
always :: forall b a. a -> b -> a
Always returns the first argument.
"anything" :always 1 -- 1
This is the constant function.
and :: forall a. HasAnd a => a -> a -> a
asTypeOf :: forall a. a -> a -> a
A type-restricted version of always
.
[] :asTypeOf [1] -- [] :: Array Int
decorate :: forall a b. Decorate a b => a -> b -> a
divide :: forall a. HasDivide a => a -> a -> a
getAllArgs :: forall all given. OptArgs all given => all -> given -> all
kestrel :: forall b a. a -> b -> a
K combinator - kestrel
K
Λ a b . a → b → a
λ x y . x
max :: forall a. HasGreater a => a -> a -> a
Returns the greater value.
max 1 2 -- 2
max 2 1 -- 2
maxByOrder :: forall a. Ord a => a -> a -> a
min :: forall a. HasLess a => a -> a -> a
Returns the lesser value.
min 1 2 -- 1
min 2 1 -- 1
minByOrder :: forall a. Ord a => a -> a -> a
multiply :: forall a. HasMultiply a => a -> a -> a
or :: forall a. HasOr a => a -> a -> a
or :: forall a. Bitwise a => a -> a -> a
plus :: forall a b. Summable a b => a -> b -> a
plus :: forall a b. Summable a b => a -> b -> a
power :: forall a. HasPower a => a -> a -> a
remainder :: forall a. HasRemainder a => a -> a -> a
scale :: forall a. Space a => a -> (a -> a)
subtract :: forall a. HasSubtract a => a -> a -> a
withAttribute :: forall a b. HasAttribute a b => a -> b -> a
Add an attribute to element node
sans :: forall m a b. At m a b => a -> m -> m