(index ("yasos" 0) ("yasos" 0) ("protocol" 202) ("protocol" 202) ("show" 496) ("show" 496) ("size" 713) ("define-predicate" 826) ("define-operation" 922) ("operations" 1150) ("operate-as" 1356) ("operate-as" 1356) ("object" 1673) ("object-with-ancestors" 1811) ("make-stack" 1965) ("make-ra-stack" 2050) ("stack?" 2155) ("ra-stack?" 2229) ("push!" 2323) ("top" 2409) ("down" 2490) ("pop!" 2603) ("empty?" 2672) ("clear!" 2745) ("make-queue" 2821) ("queue?" 2906) ("enq!" 2980) ("front" 3078) ("deq!" 3170) ("empty?" 3267) ("clear!" 3340) ("make-point-cartesian" 3416) ("make-point-polar" 3545) ("point?" 3668) ("distance" 3741) ("x" 3939) ("y" 3980) ("rho" 4021) ("theta" 4066) ("scale!" 4179) ("rotate!" 4237) ("translate!" 4296))
(def (sig (procedure "(yasos)" (id yasos)) (procedure "(yasos sym)" (id yasos))) (p "documentation procedure: Lists the exported symbols, if run as a thunk, or the documentation of the exported sym."))
(def (sig (procedure "(protocol obj)" (id protocol)) (procedure "(protocol obj sym)" (id protocol))) (p "if run as thunk, returns the list of operations, obj accepts, otherwise the signature of sym.") (p "This operation is available for each yasos object without intervention of the client."))
(def (sig (procedure "(show obj)" (id show)) (procedure "(show obj arg)" (id show))) (p "prints obj with format to stdout, if no optional arg is given, or to the first format argument. To be updated in operations."))
(def (sig (procedure "(size obj)" (id size))) (p "returns the size of an object. To be updated in operations."))
(def (sig (syntax "(define-predicate name)" (id define-predicate))) (p "defines a predicate."))
(def (sig (syntax "(define-operation (name obj . args) . default-body)" (id define-operation))) (p "defines an operation, obj should accept, with arguments args and default-body in case, no name is defined within operations."))
(def (sig (syntax "(operations ((ancestor init) ...) ((name self . args) . body) ...)" (id operations))) (p "defines the list of operations, the object self will accept, possibly inheriting ancestor ..."))
(def (sig (syntax "(operate-as super operation)" (id operate-as)) (syntax "(operate-as super operation self . args)" (id operate-as))) (p "operation is send to super. The first is a curried version of the second.") (p "The following two macros are deprecated but still exported. They are superseded by operations."))
(def (sig (syntax "(object ((name self . args) . body) ...)" (id object))) (p "same as (operations () ((name self . args) . body) ...)"))
(def (sig (syntax "(object-with-ancestors ((ancestor init) ...) ((name self . args) . body) ...)" (id object-with-ancestors))) (p "same as operations."))
(def (sig (procedure "(make-stack)" (id make-stack))) (p "creates an empty stack."))
(def (sig (procedure "(make-ra-stack)" (id make-ra-stack))) (p "creates an empty random access stack."))
(def (sig (procedure "(stack? xpr)" (id stack?))) (p "stack predicate."))
(def (sig (procedure "(ra-stack? xpr)" (id ra-stack?))) (p "random access stack predicate."))
(def (sig (procedure "(push! obj val)" (id push!))) (p "pushes val onto the stack."))
(def (sig (procedure "(top obj)" (id top))) (p "returns the top of the stack."))
(def (sig (procedure "(down obj k)" (id down))) (p "returns the result of stepping down the ra-stack k times."))
(def (sig (procedure "(pop! obj)" (id pop!))) (p "pops the stack."))
(def (sig (procedure "(empty? obj)" (id empty?))) (p "is stack empty?"))
(def (sig (procedure "(clear! obj)" (id clear!))) (p "empties the stack."))
(def (sig (procedure "(make-queue)" (id make-queue))) (p "creates an empty queue."))
(def (sig (procedure "(queue? xpr)" (id queue?))) (p "queue predicate."))
(def (sig (procedure "(enq! obj val)" (id enq!))) (p "enqueues val onto the tail of the queue."))
(def (sig (procedure "(front obj)" (id front))) (p "returns the first item of the queue."))
(def (sig (procedure "(deq! obj)" (id deq!))) (p "dequeues the the first item from the queue."))
(def (sig (procedure "(empty? obj)" (id empty?))) (p "is queue empty?"))
(def (sig (procedure "(clear! obj)" (id clear!))) (p "empties the queue."))
(def (sig (procedure "(make-point-cartesian x y)" (id make-point-cartesian))) (p "creates a point from cartesian coordinates."))
(def (sig (procedure "(make-point-polar rho theta)" (id make-point-polar))) (p "creates a point from polar coordinates."))
(def (sig (procedure "(point? xpr)" (id point?))) (p "type predicate."))
(def (sig (procedure "(distance obj other)" (id distance))) (p "computes the distance between the two points obj and otern.") (p "The following four procedures return the respective coordinates:"))
(def (sig (procedure "(x obj)" (id x))))
(def (sig (procedure "(y obj)" (id y))))
(def (sig (procedure "(rho obj)" (id rho))))
(def (sig (procedure "(theta obj)" (id theta))) (p "The following three commands do what their names suggest:"))
(def (sig (procedure "(scale! obj factor)" (id scale!))))
(def (sig (procedure "(rotate! obj angle)" (id rotate!))))
(def (sig (procedure "(translate! obj dx dy)" (id translate!))))
