Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
8
Task/Four-bit-adder/Haskell/four-bit-adder-1.hs
Normal file
8
Task/Four-bit-adder/Haskell/four-bit-adder-1.hs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import Control.Arrow
|
||||
import Data.List (mapAccumR)
|
||||
|
||||
bor, band :: Int -> Int -> Int
|
||||
bor = max
|
||||
band = min
|
||||
bnot :: Int -> Int
|
||||
bnot = (1-)
|
||||
3
Task/Four-bit-adder/Haskell/four-bit-adder-2.hs
Normal file
3
Task/Four-bit-adder/Haskell/four-bit-adder-2.hs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
nand, xor :: Int -> Int -> Int
|
||||
nand = (bnot.).band
|
||||
xor a b = uncurry nand. (nand a &&& nand b) $ nand a b
|
||||
4
Task/Four-bit-adder/Haskell/four-bit-adder-3.hs
Normal file
4
Task/Four-bit-adder/Haskell/four-bit-adder-3.hs
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
halfAdder = uncurry band &&& uncurry xor
|
||||
fullAdder (c, a, b) = (\(cy,s) -> first (bor cy) $ halfAdder (b, s)) $ halfAdder (c, a)
|
||||
|
||||
adder4 as = mapAccumR (\cy (f,a,b) -> f (cy,a,b)) 0 . zip3 (replicate 4 fullAdder) as
|
||||
2
Task/Four-bit-adder/Haskell/four-bit-adder-4.hs
Normal file
2
Task/Four-bit-adder/Haskell/four-bit-adder-4.hs
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
*Main> adder4 [1,0,1,0] [1,1,1,1]
|
||||
(1,[1,0,0,1])
|
||||
Loading…
Add table
Add a link
Reference in a new issue