Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
20
Task/Man-or-boy-test/Haskell/man-or-boy-test.hs
Normal file
20
Task/Man-or-boy-test/Haskell/man-or-boy-test.hs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import Data.IORef (modifyIORef, newIORef, readIORef)
|
||||
|
||||
a
|
||||
:: (Enum a, Num b, Num a, Ord a)
|
||||
=> a -> IO b -> IO b -> IO b -> IO b -> IO b -> IO b
|
||||
a k x1 x2 x3 x4 x5 = do
|
||||
r <- newIORef k
|
||||
let b = do
|
||||
k <- pred ! r
|
||||
a k b x1 x2 x3 x4
|
||||
if k <= 0
|
||||
then (+) <$> x4 <*> x5
|
||||
else b
|
||||
where
|
||||
f !r = modifyIORef r f >> readIORef r
|
||||
|
||||
main :: IO ()
|
||||
main = a 10 # 1 # (-1) # (-1) # 1 # 0 >>= print
|
||||
where
|
||||
( # ) f = f . return
|
||||
Loading…
Add table
Add a link
Reference in a new issue