What is Expressiveness in a Computer Language
QCD Apprentice
qcd.apprentice at gmail.com
Tue Jun 27 12:54:03 EDT 2006
Joe Marshall wrote:
> Marshall wrote:
>> Yes, an important question (IMHO the *more* important question
>> than the terminology) is what *programs* do we give up if we
>> wish to use static typing? I have never been able to pin this
>> one down at all.
>
> It would depend on the type system, naturally.
>
> It isn't clear to me which programs we would have to give up, either.
> I don't have much experience in sophisticated typed languages. It is
> rather easy to find programs that baffle an unsophisticated typed
> language (C, C++, Java, etc.).
>
> Looking back in comp.lang.lisp, I see these examples:
>
> (defun noisy-apply (f arglist)
> (format t "I am now about to apply ~s to ~s" f arglist)
> (apply f arglist))
>
> (defun blackhole (argument)
> (declare (ignore argument))
> #'blackhole)
>
> But wait a sec. It seems that these were examples I invented in
> response to the same question from you!
>
>
>> The real question is, are there some programs that we
>> can't write *at all* in a statically typed language, because
>> they'll *never* be typable?
>
> Certainly! As soon as you can reflect on the type system you can
> construct programs that type-check iff they fail to type-check.
Sorry, but can you elaborate on this last point a little? I think I
missed something.
More information about the Python-list
mailing list