Data.Bool
| Copyright | (c) The University of Glasgow 2001 |
|---|---|
| License | BSD-style (see the file libraries/base/LICENSE) |
| Maintainer | libraries@haskell.org |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
Содержание
Описание
Тип Bool и связанные функции.
Булевы значения
Примеры использования
| Bounded Bool | С момента: base-2.1 |
| Enum Bool | С момента: base-2.1 |
| Eq Bool | |
| Data Bool | С момента: base-4.0.0.0 |
Определено в Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Bool -> c Bool Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Bool Источник toConstr :: Bool -> Constr Источник dataTypeOf :: Bool -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Bool) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Bool) Источник | |
Определено в Data.Bits Краткое описание методовfiniteBitSize :: Bool -> Int Source countLeadingZeros :: Bool -> Int Source countTrailingZeros :: Bool -> Int Source | |
| Bits Bool |
Интерпретировать С версии: base-4.7.0.0 |
Определено в Data.Bits Краткое описание методов(.&.) :: Bool -> Bool -> Bool Source (.|.) :: Bool -> Bool -> Bool Source xor :: Bool -> Bool -> Bool Source complement :: Bool -> Bool Source shift :: Bool -> Int -> Bool Source rotate :: Bool -> Int -> Bool Source setBit :: Bool -> Int -> Bool Source clearBit :: Bool -> Int -> Bool Source complementBit :: Bool -> Int -> Bool Source testBit :: Bool -> Int -> Bool Source bitSizeMaybe :: Bool -> Maybe Int Source isSigned :: Bool -> Bool Source shiftL :: Bool -> Int -> Bool Source unsafeShiftL :: Bool -> Int -> Bool Source shiftR :: Bool -> Int -> Bool Source unsafeShiftR :: Bool -> Int -> Bool Source rotateL :: Bool -> Int -> Bool Source | |
| Storable Bool | С версии: base-2.1 |
Определено в Foreign.Storable МетодыsizeOf :: Bool -> Int Исходный код alignment :: Bool -> Int Исходный код peekElemOff :: Ptr Bool -> Int -> IO Bool Исходный код pokeElemOff :: Ptr Bool -> Int -> Bool -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO Bool Исходный код pokeByteOff :: Ptr b -> Int -> Bool -> IO () Исходный код | |
| type Rep Bool | |
Операции
(&&) :: Bool -> Bool -> Bool infixr 3 Исходный код
Булево "и", ленивое во втором аргументе
(||) :: Bool -> Bool -> Bool infixr 2 Исходный код
Булево "или", ленивое во втором аргументе
not :: Bool -> Bool Исходный код
Булево "не"
otherwise :: Bool Исходный код
otherwise определяется как значение True. Это помогает сделать условия более читаемыми. Например:
f x | x < 0 = ...
| otherwise = ...
bool :: a -> a -> Bool -> a Исходный код
Анализ случаев для типа Bool. bool x y p вычисляется в x когда p равно False, и вычисляется в y когда p равно True.
Это эквивалентно if p then y else x; другими словами, можно представить его как конструкцию if-then-else с переставленными аргументами.
Примеры
Базовое использование:
>>> bool "foo" "bar" True "bar" >>> bool "foo" "bar" False "foo"
Подтвердите, что bool x y p и if p then y else x эквивалентны:
>>> let p = True; x = "bar"; y = "foo" >>> bool x y p == if p then y else x True >>> let p = False >>> bool x y p == if p then y else x True
С версии: base-4.7.0.0
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Data-Bool.html