From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=BAYES_00,FORGED_MUA_MOZILLA autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,dfdb3e9be36e818e X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.101.141.33 with SMTP id t33mr5226632ann.21.1321956453343; Tue, 22 Nov 2011 02:07:33 -0800 (PST) Path: lh20ni4840pbb.0!nntp.google.com!news1.google.com!news3.google.com!feeder1-2.proxad.net!proxad.net!feeder2-2.proxad.net!newsfeed.arcor.de!newsspool2.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Tue, 22 Nov 2011 11:07:37 +0100 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: type access Parent'Class References: <7fd768a4-f97b-4045-8bab-49d2a3897a61@p2g2000vbj.googlegroups.com> <558f254a-1ae9-4f22-9430-5f110ae595b1@f29g2000yqa.googlegroups.com> <7x8041w45wfm$.12ihj5s949bvb.dlg@40tude.net> In-Reply-To: <7x8041w45wfm$.12ihj5s949bvb.dlg@40tude.net> Message-ID: <4ecb7463$0$6643$9b4e6d93@newsspool2.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 22 Nov 2011 11:07:31 CET NNTP-Posting-Host: b51aefbe.newsspool2.arcor-online.net X-Trace: DXC=^MCoBk>cBHl^Y=RbYBPl4`A9EHlD;3Ycb4Fo<]lROoRa8kFejVhb2iY]SoGZ5coM@HfGJ?T\o X-Complaints-To: usenet-abuse@arcor.de Xref: news1.google.com comp.lang.ada:19024 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Date: 2011-11-22T11:07:31+01:00 List-Id: On 22.11.11 09:42, Dmitry A. Kazakov wrote: > On Mon, 21 Nov 2011 15:45:24 -0800 (PST), Gene wrote: > >> However, there exist languages that are strongly typed that don't rely >> (at least entirely) on name equivalence. Rather they use some >> variation of structural equivalence. ML is in this category. > > Now, if the type behavior is indeterminable from the type's structure, then > structured equivalence imply weak typing = the behavior varies with the > interpretation. Otherwise (the behavior is exhaustively determined by > type's structure) the type system is weak. I don't really know ML, so I can > only suggest that it falls into the first category. > > P.S. Strong typing became a kind of fashion. In these days almost any > language claims to be strongly typed. Nice to see people discuss variations of type systems; the following quote is from notes on reading Haskell programs, for Python programmers, http://blog.ezyang.com/2011/11/how-to-read-haskell/ . "Types. Ignore everything you see after :: (similarly, you can ignore type, class, instance and newtype. Some people claim that types help them understand code; if you're a complete beginner, things like Int and String will probably help, and things like LayoutClass and MonadError won't. Don't worry too much about it.)" I am not sure whether or not this is good advice, since indeed beginners might see types as yet another hurdle that gets in the way of understanding how things work. But this advice addresses Python programmers, not people new to programming. Right now I am seeing, again, what it means to rewrite portions of a program when there is no static type system (and no parameter naming). Think of subprograms that have defaulted parameters, now drop one parameter, permute their order, ... and no compiler (sometimes not even pylint) telling you that this *will* *cause* a type error at run time---as is the case with Python. __ Did the author (intentionally) miss the fact that monads, TTBOMK, add a formal framework for reasoning (somewhat) about I/O in purely functional programs? If not in terms of time and space, then surely in terms of data flowing into, flowing through, and flowing out of functions-whose-profile-includes-world? Ada's I/O related types kind of allows this, I'd think, to the extent that one can answer questions: "Which units call operations on types having to do with I/O"?