Re: [stack] sweetening concatenative syntax
"William Tanksley, Jr" <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
Stevan Apter <[email protected]> wrote: > From: "William Tanksley, Jr" <[email protected]> > > Stevan Apter <[email protected]> wrote: > >> this is the sort of thing that makes me type-averse. i understand that > >> proponents of types have their reasons, but i can't help thinking that it's > >> one of those things that language-designers like more than language-users. > >> one of the beauties of joy is that quotations are lists are programs, and > >> in some variants, are stacks. > > The second is that they help clarify our understanding of what a > > language is doing. If an operation in a language cannot yet be typed, > > we do not have a complete idea of what it's doing yet. > but if the language is incapable of expressing a well-formed thought > because the type-system prevents that, then so much the worse for typing. > that is, i start with clear and distinct idea of the algorithm and its > data-structures, and then must work around limits on expressibility created > by the type-system ... ? Well, such a type system is simply inadequate. Yes, that describes all known type systems :-). The eternal hope is that there might exist some type system which will NOT place those limits on "well-formed thoughts", but will stop poorly formed or incomplete ones. It's known that typechecking is uncomputable -- a truly complete type system would have to be able to specify whether a program halts, for example. Almost all existing type systems are subsets that we HOPE will provide enough of the problem without having to do anything uncomputable. Type inference takes on an NP-complete problem (but, of course, avoids the uncomputable one). There are type systems that can easily specify uncomputable problems. So far I'm extremely unimpressed -- they are UGLY, and they provide no useful functionality, only restrictions. To me, unit tests are useful for many of the things static typing is used for, and contracts are useful for many of the rest. But there are things remaining that static typing is good for... Especially when your editor knows about them and can help you. -Wm