-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLab0.hs
More file actions
70 lines (44 loc) · 1.26 KB
/
Lab0.hs
File metadata and controls
70 lines (44 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
module Lab0 where
import Data.List
import Data.Char
import System.Random
import Test.QuickCheck
prime :: Integer -> Bool
prime n = n > 1 && all (\ x -> rem n x /= 0) xs
where xs = takeWhile (\ y -> y^2 <= n) primes
primes :: [Integer]
primes = 2 : filter prime [3..]
infix 1 -->
(-->) :: Bool -> Bool -> Bool
p --> q = (not p) || q
for_all :: [a] -> (a -> Bool) -> Bool
for_all = flip all
probs :: Int -> IO [Float]
probs 0 = return []
probs n = do
p <- getStdRandom random
ps <- probs (n-1)
return (p:ps)
reversibleStream :: [Integer]
reversibleStream = undefined
reversal :: Integer -> Integer
reversal = read . reverse . show
rot13 :: [Char] -> [Char]
rot13 = undefined
consecutive101Prime :: Integer
consecutive101Prime = undefined
euler9 :: Integer
euler9 = undefined
euler10 :: Integer
euler10 = undefined
euler49 :: Integer
euler49 = undefined
-- #################################################
doubleMe :: Num a => a -> a
doubleMe x = x+x
doubleUs :: Integer -> Integer -> Integer
doubleUs a b = doubleMe a + doubleMe b
doubleSmallNumber :: (Ord a, Num a) => a -> a
doubleSmallNumber a = if a < 100
then a + a
else a