[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Q2 Survey Winner

Congratulations to Yukitoshi Isazawa of the Institute of Behavioral Science in
Tokoyo, Japan - he is the winner of a $100 APDA gift certificate!  We choose
Yukitoshi's product survey from all of those received for Macintosh Allegro
Common Lisp in the second quarter of 1990.
Thank you to all of you who have sent in your survey.  We do read them, and
they've helped us to determine which features are most important to you, and
which aspects of the product need to be improved.
Laura Hamersley
Lisp Product Marketing Manager
Apple Computer

rom info-macl-request@cambridge.apple.com  Thu Jul 26 13:30:59 1990
Received: by cambridge.apple.com (5.61+++/SMI-DDN) id AA04873; Thu, 26 Jul 90 10:10:03 -0400
Return-Path: <bill@cambridge.apple.com>
Received: by cambridge.apple.com (5.61+++/SMI-DDN) id AA04869; Thu, 26 Jul 90 10:09:53 -0400
Date: Thu, 26 Jul 90 10:09:53 -0400
From: bill@cambridge.apple.com (Bill St. Clair)
Message-Id: <9007261409.AA04869.bill@cambridge.apple.com>
To: bjr@clarity.Princeton.EDU
Cc: info-macl
In-Reply-To: Brian J. Reiser's message of Thu, 26 Jul 90 00:24:50 EDT <9007260424.AA23576@clarity.Princeton.EDU>
Subject:  grapher

   Date: Thu, 26 Jul 90 00:24:50 EDT
   From: Brian J. Reiser <bjr@clarity.Princeton.EDU>

   We too have a question about the grapher.lisp included in the examples
   folder with 1.3.2.  We are beginning to try to build our own browser
   based on this grapher.  However it would be easier to make sense of
   the code in this file if example data for it were available.  In fact,
   the documentation at the top of this file refers to a file "list-nodes.lisp"
   as an example file of nodes to be input to the grapher, but this file
   is not in the Examples folder.

   Is this file available?  Or is there another example set of nodes
   for this grapher?

   Brian Reiser
   Cognitive Science Laboratory
   Princeton University

The code at the bottom of GRAPHER.LISP shows how to set up data
structures for the grapher:

(defobfun (exist *object-node*) (init-list)
  (have 'my-object (getf init-list :object (ask nil (self))))
  (have 'my-parents (getf init-list :parents nil))
  (have 'my-children (let* ((me (list (self))))
                       (mapcar #'(lambda (object)
                                   (oneof *object-node*
                                          :object object
                                          :parents me))
                               (ask (objvar my-object)
                                 (objvar object-children)))))
  (usual-exist init-list))

(defobfun (node-children *object-node*) ()
  (objvar my-children))

(defobfun (node-parents *object-node*) ()
  (objvar my-parents))

Each object knows its NODE-PARENTS (stored here as the MY-PARENTS
object variable) and its NODE-CHILDREN (stored here as the MY-CHILDREN
object variable).  The EXIST function recursively descends the object
hierarchy (stored in the OBJECT-CHILDREN variable), consing up
*OBJECT-NODE*'s as it goes.  As it says at the top of GRAPHER.LISP,
you also need to define a NODE-DRAW function.  The usual one takes
care of drawing the links, but you need to draw the node itself.

Hope this is helpful.