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
|