
A Guide to LSRHS Logo for people who know Apple Logo

Although the two versions of Logo are very different internally, they
are fairly similar in the way you use them.  This guide assumes that
you know all about Apple Logo, and explains the differences.  There are
enough differences that you can't just run your Apple Logo programs
unchanged, but what you know of Apple Logo will help you understand
LSRHS Logo.  Read this along with the LSRHS Logo Manual.

1.  Multi-instruction lines.  If you put more than one Logo instruction on
a line, you may use a semicolon between instructions for better readability:
		print "foo; print "baz

2.  Comments can be used, starting with exclamation point:
		print "foo ! This is a comment

3.  There is no built-in procedure editor; your favorite text editor is run
in a separate process instead.  There is no edns primitive.

4.  Differences in graphics:  LSRHS doesn't have background, dot,
fence, pen, setbg, setpen, window, or wrap.  Instead of pencolor and
setpc, there are somewhat different primitives setcolor and pencolor.  There
is also setxy, which is like setpos but takes two scalar inputs instead
of one vector.  Similarly, towardsxy takes two scalar inputs.  (Library
procedures setpos and towards are provided.)

5.  Differences in words and lists:  In addition to the Apple Logo primitives,
LSRHS Logo has sentencep (true only if the input is a list of words, not a
list of lists); is (like equalp, but true for numbers only if they are string
equal, so "is 3.0 3" outputs false); memberp and item for words as well as
lists.

6.  Differences in use of variables:  LSRHS local takes only one input.
There is no name, only make.

7.  Differences in arithmetic operations: There is no rerandom.  Quotient
and / are equivalent.  Additional arithmetic operations are difference
(prefix -), greaterp (prefix >), lessp (prefix <), maximum, minimum, zerop,
pow (two inputs, x to the y power).

8.  Differences in conditionals and flow of control: LSRHS Logo has trace
(with no input, traces all procedures; can take a LIST of procedure names to
trace only those) and untrace (no inputs, affects all procedures).  Pausing
works somewhat differently.  Your Unix interrupt character pauses; your quit
character stops all procedures.  The equivalent of ERRACT is the procedure
errpause.  See the manual.

9.  Differences in reading and printing:  There is no buttonp or paddle.
In order to use readchar and keyp, you must first use cbreak.  (See the
LSRHS Logo Manual.)  Apple show is called fprint in LSRHS.  There is also
ftype for full type without newline.

10.  Differences in screen commands:  LSRHS Logo cleartext clears the
entire screen.  There is no 'cursor' operation.  Setcursor is a library
procedure using the primitive setcursorxy with two scalar inputs.

11.  Workspace management:  There is no concept of a workspace in LSRHS
Logo.  Procedures are saved in individual files, and variables are not
saved at all.  Therefore, none of bury, erall, ern, erns, erps, package,
pkgall, poall, pons, pops, or unbury exist.  The Apple Logo po is called
show (note that Apple Logo uses show with a different meaning), but po
is accepted as an abbreviation.  Erase exists, and pots exists with no input.

12.  Differences in files:  None of catalog, disk, erasefile, load,
save, and setdisk exist in LSRHS Logo.  But there is a facility for
reading and writing arbitrary text files, using the primitives
openread, openwrite, fileread, fileword, fileprint, filefprint, filetype,
fileftype, and close.  See the LSRHS Logo Manual.  Other file directory
manipulation can be done using the unix command:
		unix [ls -la]

13.  Error handling:  The primitives catch, throw, and error do not
exist in LSRHS Logo.  The special name erract is not used.
There is a command toplevel which is equivalent to throw "toplevel.

14.  Procedure redefinition:  None of copydef, define, definedp,
primitivep, or text exist.  The special name redefp is not used.

15.  Miscellany:  There are no label, nodes, recycle, reparse, .bpt,
.contents, .deposit, .examine, or .printer primitives.  The go primitive
takes a numeric input; a procedure line can start with a number which is
ignored except to serve as a label for go.  The LSRHS time primitive
outputs the current date and time.  The command goodbye is used to exit
from Logo.  The command help prints a help message, and describe with
one input, the name of a primitive, prints a description of that
primitive.

16.  Floor turtles:  LSRHS has the primitives turtle, hitoot, lotoot,
lampon, lampoff, ftouch, btouch, ltouch, and rtouch applicable to
floor turtles.

