[PRL] the "success" of types
Matthias Felleisen
matthias at ccs.neu.edu
Fri May 19 14:43:16 EDT 2006
On May 19, 2006, at 2:32 PM, Mitchell Wand wrote:
> BTW: Matthias wrote:
>
>> 4a. In a functional language/program, the channels are completely
>> explicit even for the smallest unit of abstraction: a function. Your
>> types say what comes in; your result types say what comes out. You can
>> check this. And over the past couple of decades we have learned that
>> it's easy to communicate even polymorphic values along those
>> channels.
>
> It's worth remembering that this doesn't necessarily make the channels
> entirely easy to understand. In the presence of higher-order
> functions, it's quite difficult to figure out what flows into what.
> That's why 0CFA is O(n^3).
>
> It's also why in Haskell, you always declare the type of every
> function. If you didn't, figuring what flowed into what would drive
> you crazy.
This point I accept. FP has pushed the linguistic part of constructing
channels and even handing them around. It is thus not surprising that
you "pay" more for an analysis.
In general, the problem is one of finding a good compromise between
clarity of expression and reasoning about it. (I wrote this in On the
Expressive Power and stand by this 15 years later.)
-- Matthias
More information about the PRL
mailing list