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

T operations, etc.



   Date: Mon, 28 Mar 88 13:19:56 EST
   From: Bruce Krulwich <krulwich-bruce@yale.arpa>

   It seems that this operation definition syntax has been disabled in T3.1, as
   shown:


   suned/krulwich> t
   T 3.0 (17) MC68000/UNIX  Copyright (C) 1986 Yale University
   [...]
   T Top level
   > (define-operation zowie)
   #{Operation 10 ZOWIE}
   > (set q (object nil ((zowie (a b c d)) (list a b c d))))
   [Binding Q] #{Object 11}
   > (zowie q)
   (#{Object 11} #{Operation 10 ZOWIE} #{Object 12 *THE-BUCK-STOPS-HERE*}
   #{Object 11})
   > (set a (join (object nil) q))
   [Binding A] #{Procedure 13}
   > (zowie a)
   (#{Object 11} #{Operation 10 ZOWIE} #{Object 12 *THE-BUCK-STOPS-HERE*}
   #{Procedure 13})
   > (exit)
   suned/krulwich> 
   suned/krulwich> 
   suned/krulwich> 
   suned/krulwich> t3.1
   T 3.1 (1) MC68000/UNIX  Copyright (C) 1988 Yale University
   [...]
   T Top level
   > (define-operation zowie)
   #{Operation 1 ZOWIE}
   > (set q (object nil ((zowie (a b c d)) (list a b c d))))

   ** Syntax error: bad syntax for special form
     (OBJECT NIL ((ZOWIE (A B C D)) (LIST A B C D)))
   >> 
   > (exit)


   Is there a reason that it was removed??  It sounds to me like it would be a
   useful thing to have.


   Bruce
   -------



In T3.0 there was a bug which caused operations to be not quite tail-recursive.
This is fixed in T3.1 but I also changed the (still unreleased) syntax to be
(self obj) instead of (obj op next self).  You can still get next as
(joind-rhs obj).

	-David