navigation map

Chapters:
  1: Introduction
  2: Simple example
  3: Invocation
  4: Finer Control
  5: X-Y Plots
  6: Contour Plots
  7: Image Plots
  8: Examples
  9: Gri Commands
  10: Programming
  11: Environment
  12: Emacs Mode
  13: History
  14: Installation
  15: Gri Bugs
  16: Test Suite
  17: Gri in Press
  18: Acknowledgments
  19: License

Indices:
  Concepts
  Commands
  Variables
index.html#Top NewCommands.html#AddingNewCommands Gri: Adding new commands Gri: How synonyms are parsed index.html#Top Gri: How synonyms are parsed

10.11.1: Purpose of newcommands

Gri can be extended easily. Primitive commands (e.g. `set x name') can be supplemented with so-called "new commands." New commands are a little like subroutines other programming languages. For example, you might find that you often draw filled curves with a particular graylevel (say 0.5), and then return the graylevel to the previous value. This requires you to do the following each time:


new .old_graylevel.
.old_graylevel. = ..graylevel..
set graylevel 0.5
draw curve filled to 0 y
set graylevel .old_graylevel.
delete .old_graylevel.

This gets a bit tedious, and it would obviously be nicer to just say something like


Draw my kinda curve

To make this shortcut, you'd tell Gri about the existence of a new command called `Draw my kinda curve', and tell it that the new command can be accomplished by the longer code fragment written above.

Once you've learned how to make new commands, you are likely to use them a lot. The following explains how you add new commands. For advice on programming style, etc., (see Resource File).

navigation map