Portability | ghc |
---|---|
Stability | unstable |
Maintainer | Andy Gill <andygill@ku.edu> |
Boards are the principal type for our images. The are conceptually functions from 2D coordinates to values, typically a color.
Common Boards include
-
Board Bool
-- A maskingBoard
, or region. -
Board RGB
--Color Board
-
Board (Alpha RGB)
-- AColor Board
with alpha (transparency) values. -
Board (Maybe a)
-- ABoard
with binary transparency. -
Board (Maybe Color)
-- AColor Board
with binary transparency. -
Board Point
-- ABoard
(or field) ofPoint
values.
- data Board a
- lookup :: Board a -> (R, R) -> a
- coord :: Board Point
- maskFor :: (Point, Point) -> Board Bool
- circularMaskFor :: Point -> R -> Board Bool
- scale :: Scale c => R -> c -> c
- scaleXY :: (R, R) -> Board a -> Board a
- move :: (R, R) -> Board a -> Board a
- rotate :: Radian -> Board a -> Board a
- crop :: Board Bool -> Board a -> Board (Maybe a)
- class Functor f => Applicative f where
The Board datatype
'''Board''' is our primary data type, an infinite flat surface (or R2 field) of values.
Conceptually, Board a = Point -> a
.
looking up a point on the Board
.
Creating Board
s.
circularMaskFor :: Point -> R -> Board BoolSource
build a circular mask or region, with a circle of radius R
, and center Point
.
Translations on a Board
.
scaleXY :: (R, R) -> Board a -> Board aSource
A non-overloaded version of scale
which takes a independent x and y coordinate.
class Functor f => Applicative f where
A functor with application.
Instances should satisfy the following laws:
- identity
-
pure
id
<*>
v = v - composition
-
pure
(.)<*>
u<*>
v<*>
w = u<*>
(v<*>
w) - homomorphism
-
pure
f<*>
pure
x =pure
(f x) - interchange
-
u
<*>
pure
y =pure
($
y)<*>
u - ignore left value
-
u
*>
v =pure
(const
id
)<*>
u<*>
v - ignore right value
-
u
<*
v =pure
const
<*>
u<*>
v
The Functor
instance should satisfy
fmap
f x =pure
f<*>
x
pure :: a -> f a
Lift a value.
(<*>) :: f (a -> b) -> f a -> f b
Sequential application.
(*>) :: f a -> f b -> f b
Sequence actions, discarding the value of the first argument.
(<*) :: f a -> f b -> f a
Sequence actions, discarding the value of the second argument.
Applicative [] | |
Applicative IO | |
Applicative ZipList | |
Applicative STM | |
Applicative Maybe | |
Applicative Board | |
Applicative ((->) a) | |
Applicative (Either e) | |
Monoid a => Applicative ((,) a) | |
Monoid m => Applicative (Const m) | |
Monad m => Applicative (WrappedMonad m) | |
Arrow a => Applicative (WrappedArrow a b) |