This file is indexed.

/usr/share/doc/racket/games/gcalc.html is in racket-doc 6.1-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>1.20&nbsp; GCalc --- Visual λ-Calculus</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_0&quot;);">&#9658;</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">Games:<span class="mywbr"> &nbsp;</span> Fun Examples</a></td></tr></table></div><div class="tocviewsublisttop" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="bundled.html" class="tocviewselflink" data-pltdoc="x">Bundled Games</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="new-games.html" class="tocviewlink" data-pltdoc="x">Implementing New Games</a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="Showing_Scribbled_Help.html" class="tocviewlink" data-pltdoc="x">Showing Scribbled Help</a></td></tr><tr><td align="right">4&nbsp;</td><td><a href="Showing_Text_Help.html" class="tocviewlink" data-pltdoc="x">Showing Text Help</a></td></tr></table></div></div><div class="tocviewlist"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_1&quot;);">&#9660;</a></td><td>1&nbsp;</td><td><a href="bundled.html" class="tocviewlink" data-pltdoc="x">Bundled Games</a></td></tr></table><div class="tocviewsublist" style="display: block;" id="tocview_1"><table cellspacing="0" cellpadding="0"><tr><td align="right">1.1&nbsp;</td><td><a href="aces.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="aces.png" alt="" width="24" height="32"/></span> <span class="ssansserif">Aces</span> &#8212;<wbr></wbr> Solitaire Card Game</a></td></tr><tr><td align="right">1.2&nbsp;</td><td><a href="gofish.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="gofish.png" alt="" width="28" height="32"/></span> <span class="ssansserif">Go Fish</span> &#8212;<wbr></wbr> Kid&rsquo;s Card Game</a></td></tr><tr><td align="right">1.3&nbsp;</td><td><a href="crazy8s.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="crazy8s.png" alt="" width="24" height="32"/></span> <span class="ssansserif">Crazy 8s</span> &#8212;<wbr></wbr> Card Game</a></td></tr><tr><td align="right">1.4&nbsp;</td><td><a href="blackjack.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="blackjack.png" alt="" width="28" height="32"/></span> <span class="ssansserif">Blackjack</span> &#8212;<wbr></wbr> 21 Card Game</a></td></tr><tr><td align="right">1.5&nbsp;</td><td><a href="ginrummy.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="ginrummy.png" alt="" width="28" height="32"/></span> <span class="ssansserif">Rummy</span> &#8212;<wbr></wbr> Card Game</a></td></tr><tr><td align="right">1.6&nbsp;</td><td><a href="spider.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="spider.png" alt="" width="24" height="32"/></span> <span class="ssansserif">Spider</span> &#8212;<wbr></wbr> Solitaire Card Game</a></td></tr><tr><td align="right">1.7&nbsp;</td><td><a href="memory.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="memory.png" alt="" width="26" height="32"/></span> <span class="ssansserif">Memory</span> &#8212;<wbr></wbr> Kid&rsquo;s Game</a></td></tr><tr><td align="right">1.8&nbsp;</td><td><a href="slidey.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="slidey.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Slidey</span> &#8212;<wbr></wbr> Picture Puzzle</a></td></tr><tr><td align="right">1.9&nbsp;</td><td><a href="same.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="same.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Same</span> &#8212;<wbr></wbr> Dot-<wbr></wbr>Removing Game</a></td></tr><tr><td align="right">1.10&nbsp;</td><td><a href="mines.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="mines.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Minesweeper</span> &#8212;<wbr></wbr> Logic Game</a></td></tr><tr><td align="right">1.11&nbsp;</td><td><a href="paint-by-numbers.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="paint-by-numbers.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Paint By Numbers</span> &#8212;<wbr></wbr> Logic Game</a></td></tr><tr><td align="right">1.12&nbsp;</td><td><a href="lights-out.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="lights-out.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Lights Out</span> &#8212;<wbr></wbr> Logic Game</a></td></tr><tr><td align="right">1.13&nbsp;</td><td><a href="pousse.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="pousse.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Pousse</span> &#8212;<wbr></wbr> Tic-<wbr></wbr>Tac-<wbr></wbr>Toe-<wbr></wbr>like Game</a></td></tr><tr><td align="right">1.14&nbsp;</td><td><a href="gobblet.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="gobblet.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Gobblet</span> &#8212;<wbr></wbr> Strategy Game</a></td></tr><tr><td align="right">1.15&nbsp;</td><td><a href="jewel.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="jewel.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Jewel</span> &#8212;<wbr></wbr> 3-<wbr></wbr>D Skill Game</a></td></tr><tr><td align="right">1.16&nbsp;</td><td><a href="parcheesi.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="parcheesi.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Parcheesi</span> &#8212;<wbr></wbr> Board Game</a></td></tr><tr><td align="right">1.17&nbsp;</td><td><a href="checkers.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="checkers.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Checkers</span> &#8212;<wbr></wbr> Board Game</a></td></tr><tr><td align="right">1.18&nbsp;</td><td><a href="chat-noir.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="chat-noir.png" alt="" width="40" height="19"/></span> <span class="ssansserif">Chat Noir</span> &#8212;<wbr></wbr> Puzzle Game</a></td></tr><tr><td align="right">1.19&nbsp;</td><td><a href="tally-maze.html" class="tocviewlink" data-pltdoc="x"><span class="noborder"><img src="tally-maze.png" alt="" width="32" height="32"/></span> <span class="ssansserif">Tally Maze</span> &#8212;<wbr></wbr> Maze Enumeration Game</a></td></tr><tr><td align="right">1.20&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x"><span class="noborder"><img src="gcalc.png" alt="" width="32" height="32"/></span> <span class="ssansserif">GCalc</span> &#8212;<wbr></wbr> Visual λ-<wbr></wbr>Calculus</a></td></tr></table></div></div><div class="tocviewlist"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_2&quot;);">&#9658;</a></td><td>1.20&nbsp;</td><td><a href="" class="tocviewselflink" data-pltdoc="x"><span class="noborder"><img src="gcalc.png" alt="" width="32" height="32"/></span> <span class="ssansserif">GCalc</span> &#8212;<wbr></wbr> Visual λ-<wbr></wbr>Calculus</a></td></tr></table><div class="tocviewsublistbottom" style="display: none;" id="tocview_2"><table cellspacing="0" cellpadding="0"><tr><td align="right">1.20.1&nbsp;</td><td><a href="#%28part._.The_.Window_.Layout%29" class="tocviewlink" data-pltdoc="x">The Window Layout</a></td></tr><tr><td align="right">1.20.2&nbsp;</td><td><a href="#%28part._.User_.Interaction%29" class="tocviewlink" data-pltdoc="x">User Interaction</a></td></tr><tr><td align="right">1.20.3&nbsp;</td><td><a href="#%28part._.Cube_operations%29" class="tocviewlink" data-pltdoc="x">Cube operations</a></td></tr></table></div></div></div><div class="tocsub"><div class="tocsubtitle">On this page:</div><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber">1.20.1<tt>&nbsp;</tt></span><a href="#%28part._.The_.Window_.Layout%29" class="tocsubseclink" data-pltdoc="x">The Window Layout</a></td></tr><tr><td><span class="tocsublinknumber">1.20.2<tt>&nbsp;</tt></span><a href="#%28part._.User_.Interaction%29" class="tocsubseclink" data-pltdoc="x">User Interaction</a></td></tr><tr><td><span class="tocsublinknumber">1.20.3<tt>&nbsp;</tt></span><a href="#%28part._.Cube_operations%29" class="tocsubseclink" data-pltdoc="x">Cube operations</a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.1&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.1&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="tally-maze.html" title="backward to &quot;1.19  Tally Maze --- Maze Enumeration Game&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="bundled.html" title="up to &quot;1 Bundled Games&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="new-games.html" title="forward to &quot;2 Implementing New Games&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div><h4 x-source-module="(lib &quot;games/scribblings/games.scrbl&quot;)" x-part-tag="&quot;gcalc&quot;">1.20<tt>&nbsp;</tt><a name="(part._gcalc)"></a><span class="noborder"><img src="gcalc.png" alt="" width="32" height="32"/></span> <span class="ssansserif">GCalc</span> &#8212;<wbr></wbr> Visual &#955;-Calculus</h4><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p>To play <span class="ssansserif">GCalc</span>, run the <span class="stt">PLT Games</span> program. (Under Unix, it&rsquo;s called <span class="stt">plt-games</span>).</p></blockquote></blockquote></blockquote><p><span class="ssansserif">GCalc</span> is a system for visually demonstrating the
&#955;-Calculus (not really a game).</p><p>See the following for the principles:</p><p><div class="SIntrapara"><blockquote class="SCentered"><p><a href="http://www.grame.fr/Research/GCalcul/Graphic_Calculus.html"><span class="stt">http://www.grame.fr/Research/GCalcul/Graphic_Calculus.html</span></a></p></blockquote></div><div class="SIntrapara"><blockquote class="SCentered"><p><a href="ftp://ftp.grame.fr/pub/Documents/ICMC94LambdaCalc.pdf"><span class="stt">ftp://ftp.grame.fr/pub/Documents/ICMC94LambdaCalc.pdf</span></a></p></blockquote></div></p><h5 x-source-module="(lib &quot;games/scribblings/games.scrbl&quot;)" x-part-tag="&quot;The_Window_Layout&quot;">1.20.1<tt>&nbsp;</tt><a name="(part._.The_.Window_.Layout)"></a>The Window Layout</h5><p>The window is divided into three working areas, each made of cells.
Cells hold cube objects, which can be dragged between cells (with a
few exceptions that are listed below).  The working areas are as
follows:</p><ul><li><p>The right side is the storage area.  This is used for saving
objects &ndash; drag any cube to/from here.  Note that cubes can be
named for convenience.</p></li><li><p>The left side is a panel of basic color cubes.  These cells
always contain a set of basic cubes that are used as the primitive
building blocks all other values are made of.  They cannot be
overwritten.  (Note that this includes a transparent cell.)</p></li><li><p>The center part is the working panel.  This is the main panel where
new cubes are constructed.  The center cell is similar to a storage
cell, and the surrounding eight cells all perform some operation on
this cell.</p></li></ul><h5 x-source-module="(lib &quot;games/scribblings/games.scrbl&quot;)" x-part-tag="&quot;User_Interaction&quot;">1.20.2<tt>&nbsp;</tt><a name="(part._.User_.Interaction)"></a>User Interaction</h5><p>Right-click any cell except for the basic colors on the left panel, or
hit escape or F10 for a menu of operations.  The menu also includes
the keyboard shortcuts for these operations.</p><h5 x-source-module="(lib &quot;games/scribblings/games.scrbl&quot;)" x-part-tag="&quot;Cube_operations&quot;">1.20.3<tt>&nbsp;</tt><a name="(part._.Cube_operations)"></a>Cube operations</h5><p>There are six simple operations that are considered part of the simple
graphic cube world.  The operations correspond to six of the operation
cells: a left-right composition is built using the left and the right
cells, a top-bottom using the top and the bottom, and a front-back
using the top-left and bottom-right.  Dragging a cube to one of these
cells will use the corresponding operator to combine it with the main
cell&rsquo;s cube.  Using a right mouse click on one of these cells can be
used to cancel dragging an object to that cell, this is not really an
undo feature: a right-click on the right cell always splits the main
cube to two halves and throws the right side.</p><p>The colored cubes and the six basic operators make this simple domain,
which is extended to form a &#955;-Calculus-like language by adding
abstractions and applications.  Right-clicking on a basic cube on the
left panel creates an abstraction which is actually a lambda
expression except that colors are used instead of syntactic variables.
For example, if the main cell contains <span class="ssansserif">R|G</span> (red-green on
the left and right), then right-clicking the green cube on the left
panel leaves us with <span class="ssansserif">&#955; G . R|G</span>, which is visualized
as <span class="ssansserif">R|G</span> with a green circle.  The last two operator cells
are used for application of these abstractions: drag a function to the
top-right to have it applied on the main cube, or to the bottom-left
to have the main cube applied to it.  As in the &#955;-Calculus,
all abstractions have exactly one variable, use currying for multiple
variables.</p><p>So far the result is a domain of colored cubes that can be used in the
same way as the simple &#955;-Calculus.  There is one last
extension that goes one step further: function cubes can themselves be
combined with other functions using the simple operations.  This
results in a form of "spatial functions" that behave differently in
different parts of the cube according to the construction.  For
example, a left-right construction of two functions <span class="ssansserif">f|g</span>
operates on a given cube by applying <span class="ssansserif">f</span> on its left part and
<span class="ssansserif">g</span> on its right part.  You can use the preferences dialog to
change a few aspects of the computation.</p><p>Use the <span class="ssansserif">Open Example</span> menu entry to open a sample file that
contains lots of useful objects: Church numerals, booleans, lists,
Y-combinator, etc.</p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.1&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.1&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<a href="tally-maze.html" title="backward to &quot;1.19  Tally Maze --- Maze Enumeration Game&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="bundled.html" title="up to &quot;1 Bundled Games&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="new-games.html" title="forward to &quot;2 Implementing New Games&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>