-
Notifications
You must be signed in to change notification settings - Fork 2
/
KH-RFC-demos
79 lines (60 loc) · 3.06 KB
/
KH-RFC-demos
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
74
75
76
77
78
79
Dear Emacs, make this -*-Text-*- mode!
R currently comes with several R programs (``demos'') demonstrating its
capabilities; one of the demos additionally uses C code (dynload). The
current mechanism is not very powerful. Problems identified include
* Demos might interfere with the user's workspace (.GlobalEnv).
* There is no straightforward way to display explanatory information
along the code being run, comments are typically truncated. (Of
course one could get by this using explicit file.show() steps.)
* There is no straightforward way of interacting with the user.
The last two items imply that we currently cannot easily write on-line
tutorials. In addition, as Fritz recently pointed out to me, it would
be very useful to have a mechanism for producing `pretty' (e.g. LaTeX
with PostScript graphics) output from R code and explanatory comments.
Fritz and Peter had discussed a mechanism for writing enhanced demos
based on extended Rd markup. Given recent discussions on documentation
objects and related issues, I think we need a more general literate
programming kind of approach. Note that my experience with such tools
is primarily with the LaTeX 2e docstrip mechanism, hence what I have in
mind is closely related to this.
* Add a mechanism for keeping ``documentation'' along with the R code.
The text would be in comment lines enclosed within SGML-style tags.
Rather than assuming that this documentation must be plain text or
would be written in some universal language, there should be a way to
specify the kind of documentation (e.g., LaTeX, Rd, SGML, ...). The
docstrip-style processing mechanism would be smart enough to extract
the right parts.
* In particular, R itself should we able to extract text it should
display along with running a demo.
* Add R functions providing a toolkit for writing demos. This could
include e.g.
demoAskConfirmation
demoGetInput
etc.
* (Preliminary.) For tutorials we need a mechanism providing explain
and run and display cycles. That R knows what to do with <Rdemo>
markup in comments is not good enough, because there is no point in
having everything run over the screen. Of course we can always write
explicit R code to do this, but I think it is more convenient to have
## <Rdemocycle>
## <Rdemocycledoc>
## O.k., so we now want to do the following ...
## </Rdemocycledoc>
## <Rdemocyclecode>
foo(bar, ...)
## </Rdemocyclecode>
## </Rdemocycle>
* Add R functions to ``pretty-print'' R objects in certain formats.
E.g., when trying to create LaTeX output the mechanism could be like
## <LaTeX>
## We now do $$\alpha\beta\gamma ...$$
## </LaTeX>
x <- doSomethingUsefulNow(args)
LaTeX(x)
but of course we need a way to specify that the LaTeX representation
gets dumped to the same file the LaTeX ``documentation'' goes to.
Similarly, there should be a mechanism for adding plots (e.g. have a
plot counter, create subdir `images', when dumping a plot create file
`fig$counter.eps' in the subdir and add \includegraphics{...} to the
LaTeX file, increment the counter).
-k