<HTML>
<HEAD>
<link rel="stylesheet" href="quail-style-sheet.css" />
<TITLE> A Taste of Quail</TITLE>
</HEAD>

<BODY>

  <table border=0 cellpadding=5>
    <tr valign="top">
      <td align="left">

 <!--#include virtual="table-contents.html" -->

      </td>
      <td>

<H1>A TASTE OF QUAIL</H1>


<P>
Quail is both a <B> command line programming environment </B>
and a <B> display-oriented environment </B> for carrying out 
quantitative analysis.  In Quail, the two approaches are freely 
mixed.  One of the principal research interests in Quail is the 
integration of the two.
</P>

<P>
Here we provide access to some information on both.
</P>

<hr>

<a name="Command" /><H2>Command line/programming interface</H2>

<P>
The principal means of writing, compiling, and executing code is through
the top level lisp listener as provided by the Common Lisp vendor.
</P> 

<P>
For those unfamiliar with Lisp here are a couple of examples:
   <UL>
     <LI> Typed expressions are accepted, evaluated, and the answers printed 
              in lisp's `top-level'  <B> read-evaluate-print loop </B> as 
              demonstrated below:
          <br>
          <EMBED src="movies/listener.mov" width="320" height="330" alt="Top-level loop">
          <br>

          <P> Bold face type is typed
          by the user. The user types an expression which is
          read by this toplevel loop and evaluated according to the nesting of the
          parentheses and in left to right fashion (with the exception of the leftmost
          characters which represent the operator). The result of the evaluation is
          then printed.
          </P>

          <P> Some notes: </P>
          <OL>
           <LI> This is a pretty rudimentary example which uses the environment as
                a calculator.
           <LI> At least four different types of numbers are demonstrated: integers
                (actually fixnums here), rationals, floating-point numbers, and complex
                numbers. Quail actually extends the number system further to accomodate
                <A HREF="http://www.stats.uwaterloo.ca/~rwoldfor/cgi-bin/dirLayout.pl?what=F;dir=Examples/Mathematics/extended-arithmetic.lsp;type=text">
                IEEE arithmetic operations.</A>
           <LI> Some symbols (like <B> pi </B>) are built in constants.
           <LI> Symbols like <B>x</B> (or any other sequence of contiguous characters)
                can be assigned a value.
           <LI> The Quail assignment operator <B> <- </B>, a left arrow, returns no
                value.
           <LI> There are hundreds of functions built into Common Lisp and also its data
                analytic extension Quail. Here we see arithmetical operators and the square
                root function <B> sqrt </B>.  Here are some other 
                <A HREF="http://www.stats.uwaterloo.ca/~rwoldfor/cgi-bin/dirLayout.pl?what=F;dir=Examples/Arrays/arith-ops.lsp;type=text"> arithmetic operators for arrays
                </A> in Quail.
          </OL>


     <LI> Quail (and Common Lisp) can be extended by defining new functions, generic functions
          and methods, and macros.  Here we very briefly
          show a function written in common lisp using
         <A HREF="tutorials/defun.html"> <B>defun</B> </A>
          and illustrate how this is done interactively, and then immediately used.
</UL>

<P>
In Quail, there are a series of
<A HREF="http://www.stats.uwaterloo.ca/~rwoldfor/cgi-bin/dirLayout.pl?what=D;dir=Examples;type=text"> example files </A>
which can be used interactively (in Quail)
to explore some of the features that Quail has added to Common Lisp.
(These come as part of the Quail software that can be down loaded.)
</P>

<P>
What appears here is a somewhat recent copy of these files.
They are organized by topical directories.  Note however that no serious
attempt has been made <I> in this html document </I> to keep the example files found
here either up to date or complete.
</P>

<P>
</P>


<HR>


<a name="Display"><H2> Display-oriented interface </H2>

<P>
One of the principal features of Quail is its high interaction, particularly
for quantitative graphics.  This is pretty hard to get across in text
so here we provide a few tidbits to show how Quail can be used.
</P>

<P>
Interfaces that you see are as they appear in the Macintosh version of
Quail.  The same functionality is available in other versions but the
appearance will differ slightly.
</P>

<P>
Movies that are recorded here are recorded in Quicktime.  If your
browser doesn't have a Quicktime plugin, you might want to visit the 
<A HREF="http://www.quicktime.com"> Quicktime site</A>.
Any choppiness in the images is due to the low rate (5 per minute)
used to capture the interactions.
</P>


<H3> The tidbits </H3>
  <OL>
     <LI> Quail provides a good deal of information including a help system and
          collection of example files showing the programmatic use of Quail's extensions
          to Common Lisp.  Much of this information is accessible through an
          ever-present <A HREF="tutorials/quail-menu.html"> Quail menu. </A>
          This menu also provides the user with access to system datasets and control
          over the default appearence of the Quail environment.
     <LI> While a type in interface is available and typically heavily used, Quail provides
          a system level menu so that users can conveniently access plots.
          <A HREF="tutorials/plots-menu.html"> Here </A> the plots menu is shown.
     <LI> Basic mouse interaction on plots in Quail.  Here the basic suite
          of interactions in Quail are described.  A simple
          <A HREF="tutorials/scatterplot.html"> scatterplot </A> is
          used to illustrate these.
     <LI> The <A HREF="tutorials/scatterplot.html"> scatterplot </A>.
          This is the same as above but feel free to skip over the familiar.
     <LI> <A HREF="tutorials/3d-scatterplots.html"> Three dimensional scatterplots.</A>
  </OL>

<hr>

<A HREF="Quail.html">
<p>
<IMG ALT="Quail homepage" SRC="images/small-quail.gif">
Back to the Quail homepage:
</p>
</A>

November 17, 1999.

</td>
</tr>
</table>

</BODY>

</HTML>


