doc make-generic and add 'generic?'

svn: r9164
This commit is contained in:
Matthew Flatt 2008-04-04 12:13:19 +00:00
parent a9d7b95d3d
commit 307ca18d31
3 changed files with 54 additions and 42 deletions

View File

@ -7,5 +7,5 @@
;; which provides extra (private) functionality to contract.ss.
(require "private/class-internal.ss")
(provide-public-names))
(provide-public-names)
(provide generic?))

View File

@ -24,45 +24,45 @@
(provide provide-public-names
;; needed for Typed Scheme
(protect-out do-make-object find-method/who))
(define-syntax (provide-public-names stx)
#'(provide class class* class/derived
define-serializable-class define-serializable-class*
class?
mixin
interface interface?
object% object? externalizable<%>
object=?
new make-object instantiate
send send/apply send* class-field-accessor class-field-mutator with-method
get-field field-bound? field-names
private* public* pubment*
override* overment*
augride* augment*
public-final* override-final* augment-final*
define/private define/public define/pubment
define/override define/overment
define/augride define/augment
define/public-final define/override-final define/augment-final
define-local-member-name define-member-name
member-name-key generate-member-key
member-name-key? member-name-key=? member-name-key-hash-code
generic make-generic send-generic
is-a? subclass? implementation? interface-extension?
object-interface object-info object->vector
object-method-arity-includes?
method-in-interface? interface->method-names class->interface class-info
(struct-out exn:fail:object)
make-primitive-class
;; "keywords":
private public override augment
pubment overment augride
public-final override-final augment-final
field init init-field init-rest
rename-super rename-inner inherit inherit/super inherit/inner inherit-field
this super inner
super-make-object super-instantiate super-new
inspect))
(define-syntax-rule (provide-public-names)
(provide class class* class/derived
define-serializable-class define-serializable-class*
class?
mixin
interface interface?
object% object? externalizable<%>
object=?
new make-object instantiate
send send/apply send* class-field-accessor class-field-mutator with-method
get-field field-bound? field-names
private* public* pubment*
override* overment*
augride* augment*
public-final* override-final* augment-final*
define/private define/public define/pubment
define/override define/overment
define/augride define/augment
define/public-final define/override-final define/augment-final
define-local-member-name define-member-name
member-name-key generate-member-key
member-name-key? member-name-key=? member-name-key-hash-code
generic make-generic send-generic
is-a? subclass? implementation? interface-extension?
object-interface object-info object->vector
object-method-arity-includes?
method-in-interface? interface->method-names class->interface class-info
(struct-out exn:fail:object)
make-primitive-class
;; "keywords":
private public override augment
pubment overment augride
public-final override-final augment-final
field init init-field init-rest
rename-super rename-inner inherit inherit/super inherit/inner inherit-field
this super inner
super-make-object super-instantiate super-new
inspect))
;;--------------------------------------------------------------------
@ -3678,7 +3678,7 @@
define/public-final define/override-final define/augment-final
define-local-member-name define-member-name
member-name-key generate-member-key member-name-key? member-name-key=? member-name-key-hash-code
(rename-out [generic/form generic]) (rename-out [make-generic/proc make-generic]) send-generic
(rename-out [generic/form generic]) (rename-out [make-generic/proc make-generic]) send-generic generic?
is-a? subclass? implementation? interface-extension?
object-interface object-info object->vector
object-method-arity-includes?

View File

@ -1136,6 +1136,13 @@ If @scheme[obj-expr] does not produce a object, or if
not an instance of the class or interface encapsulated by the result
of @scheme[generic-expr], the @exnraise[exn:fail:object].}
@defproc[(make-generic [type (or/c class? interface?)]
[method-name symbol?])
generic?]{
Like the @scheme[generic] form, but as a procedure that accepts a
symbolic method name.}
@; ------------------------------------------------------------------------
@section[#:tag "mixins"]{Mixins}
@ -1544,6 +1551,11 @@ Returns @scheme[#t] if @scheme[v] is a class, @scheme[#f] otherwise.}
Returns @scheme[#t] if @scheme[v] is an interface, @scheme[#f] otherwise.}
@defproc[(generic? [v any/c]) boolean?]{
Returns @scheme[#t] if @scheme[v] is a @tech{generic}, @scheme[#f] otherwise.}
@defproc[(object=? [a object?][b object?]) eq?]{
Determines if two objects are the same object, or not; this procedure uses