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

Re: Question (difference between [Function] and [Method])



At  1:43 PM 11/12/92 +0000, Nobuhiko Funato wrote:
> Dylan book anonotates one of some categories for each function symbol
> description. E.g. [Function], [Method], [Generic Function], [G.F. Method]...
> 
> I hope those categories will be introduced in p.16 (Manual Notation),
> or in p.19 (Language Overview),
> 
> In fact, it is still not clear for me the distinction between [Function]
> and [Method]. My understanding is:
> 
>   [Generic Function] The specified generic function is bound to that symbol
> 
>   [G.F. Method]      A generic function according to the specified method
>                      is bound to that symbol
> 
>   [Method]           The specified method, so-called lambda closure of which
>                      parameters' types are specialized, is bound to that symbol
>                      (Method dispatch won't be occured, when the symbol is
>                       evaluated)
> 
>   [Function]         (How different from [Method] ? How is it defined ?)
> 
> Please teach me the difference, though it may be an elementary question.
> Thanks.

The classifications in the current manual are inconsistent.  They're
scheduled to be cleaned up in the next version of the language design.

That said, here are the categories:

Generic Function       The variable contains a generic function.  The
                       attached description describes the protocol of
                       the generic function as a whole.

GF Method              The variable contains a generic function.  The
                       attached description describes the behavior of
                       a particular method in the generic function (i.e.,
                       the behavior of the generic function when called
                       with a particular set of arguments)

Method                 The variable contains a method.  No generic function
                       dispatch involved.

Function               It is unspecified whether the variable contains a
                       generic function or a method.


As I said, the current manual does not use these consistently.