Haskell & Церковь ADT
data One = One deriving (Eq, Ord, Bounded, Enum, Show, Read)
Это определяет одно истинное One
. Это One
является и типом обозначая Единство , и конструктор One
, который сам по себе является нульарной функцией , которая возвращает один истинные, и только одно значение типа One
, который, вот, One
.
Использование в ghci
REPL:
λ: One -- One returns the one true One
One
λ: One == One -- One is equal to itself, as no others are
True
λ: One < One -- One is no less than itself
False
λ: minBound :: One -- One is the least One there is, yet it is all you need
One
λ: maxBound :: One -- One is as big as the universe of One, it is omnipotent
One
λ: [ One .. One ] -- One is the beginning, and ending, of all that is One
[One]
λ: show One -- The textual gospel of One
"One"
λ: read "One" :: One -- To read the word of One, is to become one with One
One
Полная Книга Одного теперь онлайн. При загрузке вы получаете оба завета: вычисление и арифметика. Это позволяет вам исследовать больше истин:
λ: One + One -- One can only add to its magnificence
One
λ: negate One
*** Exception: One cannot be negated, mortal fool!
λ: One `div` One -- One is indivisible
One
λ: One `mod` One
*** Exception: Nothing can modulate the power of One
λ: toRational One -- Ye shall know One as both Numerator and Denominator
1 % 1
λ: toInteger One * 42 -- One multiplies all to wholeness
42
λ: toRational One / 2 -- Even divided, One is on top
1 % 2