[plt-scheme] macro question

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Jun 10 12:39:09 EDT 2008

(c) is local inference.



On Jun 10, 2008, at 12:41 PM, hendrik at topoi.pooq.com wrote:

> On Tue, Jun 10, 2008 at 12:22:56PM -0400, Matthias Felleisen wrote:
>>
>> On Jun 10, 2008, at 11:40 AM, hendrik at topoi.pooq.com wrote:
>>>
>>> There are a few type inferences that do not seem to harm the
>>> readability of a program.  Type information can flow:
>>>
>>> (a) from the declaration of an identifier to its use
>>>
>>> (b) from the leaves of a parse tree towards its root (the usual
>>> direction of expressino evaluation)
>>>
>>> (c) from the root of a parse tree towards the leaves (called
>>> coercion in
>>> Algol 68; a mechanism whereby the context of an expression  
>>> affects its
>>> meaning.  Used for determining the types of initializers in C.
>>>
>>
>> None of the above are considered 'type inference.' What you describe
>> is the normal mode of type checking.
>
> The fact that it's not confusing may explain why it's normal.
> Except for (c).  It's often rejected by language designers on  
> principle.
> A wrong-headed principle, in my opinion.
>
> -- hendrik



Posted on the users mailing list.