summaryrefslogtreecommitdiff
path: root/Fractran/Example.hs
blob: 43d8cc878eaffc155f5f09297629c80864b1de9a (plain)
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
module Fractran.Example (
    addition,
    multiply,
    prime2,
    prime10short,
    prime10) where


import Fractran.Parser




-- some simple fractran programs


-- these ones need an initial input added of the appropriate form

-- input: 2^a * 3^b
-- output: 3^(a+b)
addition :: [(Int,Int)]
addition = [(3,2)]

-- input: 2^a * 3^b
-- output: 5^ab
multiply :: [(Int,Int)]
multiply = [(13,21), (385,13), (1,7), (3,11), (7,2), (1,3)]




-- these ones are already in ready to interpret, FractranProgram form

-- input: 2
-- output: a sequence containing all prime powers of 2
prime2 :: FractranProgram
prime2 = FractranProgram [(17,91), (78,85), (19,51), (23,38), (29,33), (77,29), (95,23), (77,19), (1,17), (11,13), (13,11), (15,14), (15,2), (55,1)] 2

-- input: 10
-- output: a sequence containing all prime powers of 10
prime10short :: FractranProgram
prime10short = FractranProgram [(3,11), (847,45), (143,6), (7,3), (10,91), (3,7), (36,325), (1,2), (36,5)] 10

prime10 :: FractranProgram
prime10 = FractranProgram [(7,3), (99,98), (13,49), (39,35), (36,91), (10,143), (49,13), (7,11), (1,2), (91,1)] 10