In short: a view is a type that a type must have.
What is value? 1, 2, 3- values. So "Hello"and "World", trueand falseetc.
Values are of type. Types describe a set of values. 1, 2and 3relate to type Nat, "Hello"and "World"to type Text, trueand falseto type Boolean.
. - , , . , .
, . , abs, ,
Number -> NonNegativeNumber
add, ,
(Number, Number) -> Number
divmod
(Number, Number) -> (Number, Number)
, , , , ? ?
, findCrossing, , - () y. :
(Number -> Number) -> Number
makeAdder, , :
Number -> (Number -> Number)
, :
(Number -> Number) -> (Number -> Number)
: - . . , , 0.
OTOH : . , 1.
, , : , . 2.
, > 1 " ".
, ? , , 1, 2, "Hello", false .. . Number? Text? Boolean?
, Type, ! " " .
, , , , . .
, , . , List, ,
Type -> Type
Map, ,
(Type, Type) -> Type
, , , , , ? !
Functor. :
(Type -> Type) -> Type
, Type ? , Number, Text, Boolean .. , Type. (, ), , Type , *. Functor
(* -> *) -> *
Number
*
, Number, Text, * 0, List, * -> * (*, …) -> (*, …) 1, Functor (* -> *) -> * * -> (* -> *) ( ..) 2. , .
/ 1 , .
, : ; .
: . , currying , , , , , , , ,... . , , .
, , add ( ), .