小编ntb*_*457的帖子

在Haskell中定义了eq和neq

我是Haskell的初学者.我需要定义eq和neq.

data Nat = Z | S Nat
deriving (Show)

toInt :: Nat -> Int
toInt Z = 0
toInt (S n) = 1 + toInt n

toNat :: Int -> Nat
toNat n | n < 0 = error "Nats do not support negative numbers!"
toNat 0 = Z
toNat n = S (toNat (n-1))

instance Eq Nat where
(==) = eq
(/=) = neq
Run Code Online (Sandbox Code Playgroud)

不是故意发布实例.正确的代码如下:

eq :: Nat -> Nat -> Bool
eq a b =
Run Code Online (Sandbox Code Playgroud)

haskell

0
推荐指数
1
解决办法
272
查看次数

Haskell中的NAND over NOR

Haskell初学者在这里.我想证明NAND在haskell中分布在NOR上.这应该让我回到"真实",但我一直都是假的.我甚至不确定我是否正确接近它,但这是我尝试过的:

nand_distributes_nor :: Bool
nand_distributes_nor = and [(a `nand` (b `nor` c)) == ((a `nand` b) `nor` (a `nand` c)) | a<-bools, b<-bools, c<-bools]
Run Code Online (Sandbox Code Playgroud)

haskell boolean-logic

-2
推荐指数
1
解决办法
552
查看次数

标签 统计

haskell ×2

boolean-logic ×1