blob: d1997cb12492d61fb0b49186688f48c2581c560e (
plain) (
blame)
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
71
72
73
|
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<title>Lambda Screen - Fractals in Pure Lambda Calculus</title>
<link rel="stylesheet" href="style.css" type="text/css" media="all" />
</head>
<body>
<main>
<canvas height="800" width="800" id="canvas"></canvas>
<div>
<div class="inputWrap">
Reduction mode:
<select id="reductionMode">
<option value="auto" selected>Reduce to normal form</option>
<option value="slider">Reduce by sliding</option>
<option value="click">Reduce by clicking</option>
</select>
</div>
<input type="range" min="0" max="20" value="0" id="slider" />
</div>
<div>
<div class="inputWrap">
Load preset:
<select id="examples">
<option value="" selected>Empty</option>
<option
value="-- the final term gets applied with the empty screen
\0"
>
Identity
</option>
<option
value="-- define substitutions of top-left, top-right, bottom-left, bottom-right black pixels
tl = \\0
tr = \\0
bl = \\0
br = \\0
-- two abstractions to ignore the screen state and replace the entire screen
\\((((0 tl) tr) bl) br)"
>
Just black
</option>
<option
value="map = \\(0 \\\\\((((0 (6 4)) (6 3)) (6 2)) (6 1)))
invert = \\\((2 0) 1)
(map invert)"
>
Invert
</option>
<option
value="010100010001110011010000111001101000000001010100010101011000001100000001000000010001011010010101000000011100111101001000100000110110000000000001010101100111111101111100111111101111001111111011100111111101100001010100101001010101000000000001010101101111101111011101100000110000011000001100000110010101010000000000010101011011111011110111011000001000001000001000001001000001101100000000000010101011001011111111100100010100000110110000010010101011001010000000101101110110000000001111000000000011110111100100000110110000001010000000101101110110010000000000011110010101011111101111011101101011001000000000001110010101011111101111011101101010010000011011000000101000000010110111011001000000000001110010101011111101111011101101011001000000000001100101010111111011110111011010110010000011011000000101000000010110111011001000000000001100101010111111011110111011010110010000000000011110010101011111101111011101101011011111110010100000110110000000000001010101101111101111011100000101111100101111111110010001010000011011000001001010101100101000000010110111011000000000111100000000001111011110010000011011000000101000000010110111011001000000000001111001010101111110111101110110101100100000000000111001010101111110111101110110101001000001101100000010100000001011011101100100000000000111001010101111110111101110110101100100000000000110010101011111101111011101101011001000001101100000010100000001011011101100100000000000110010101011111101111011101101011001000000000001111001010101111110111101110110101101111111001010000011011000000000000101010110111110111100000101101111001011111111100100010100000110110000010010101011001010000000101101110110000000001111000000000011110111100100000110110000001010000000101101110110010000000000011110010101011111101111011101101011001000000000001110010101011111101111011101101010010000011011000000101000000010110111011001000000000001110010101011111101111011101101011001000000000001100101010111111011110111011010110010000011011000000101000000010110111011001000000000001100101010111111011110111011010110010000000000011110010101011111101111011101101011011111110010100000110110000000000001010101101111100000101110110111001011111111100100010100000110110000010010101011001010000000101101110110000000001111000000000011110111100100000110110000001010000000101101110110010000000000011110010101011111101111011101101011001000000000001110010101011111101111011101101010010000011011000000101000000010110111011001000000000001110010101011111101111011101101011001000000000001100101010111111011110111011010110010000011011000000101000000010110111011001000000000001100101010111111011110111011010110010000000000011110010101011111101111011101101011011111110010100000110110000000000001010101100000101111011101101101000000000011100111100111011110"
>
sierpinski-like
</option>
</select>
</div>
<span id="error"></span>
<textarea
type="text"
rows="5"
placeholder="e.g. \\(0...) or 00000110... (BLC) or [[0 ...]] (bruijn)"
name="term"
id="term"
></textarea>
</div>
<button id="render">Render!</button>
</main>
<script src="script.js"></script>
</body>
</html>
|