| Related articles |
|---|
| From: | Kaz Kylheku <157-073-9834@kylheku.com> |
| Newsgroups: | comp.compilers |
| Date: | Fri, 13 Apr 2018 03:28:26 +0000 (UTC) |
| Organization: | Aioe.org NNTP Server |
| References: | <49854345-f940-e82a-5c35-35078c4189d5@gkc.org.uk> 18-03-103 18-03-042 18-03-047 18-03-075 18-03-079 18-03-101 18-04-002 18-04-003 18-04-004 18-04-035 18-04-052 |
| Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="98879"; mail-complaints-to="abuse@iecc.com" |
| Keywords: | OOP, design |
| Posted-Date: | 13 Apr 2018 13:17:34 EDT |
On 2018-04-13, George Neuner <gneuner2@comcast.net> wrote:
> On Tue, 10 Apr 2018 18:32:23 +0000 (UTC), Kaz Kylheku
><157-073-9834@kylheku.com> wrote:
>
>>On 2018-04-09, George Neuner <gneuner2@comcast.net> wrote:
>>> IMO, the evidence that many popular languages are not "powerful" is
>>> that they are either exclusively or primarily OO, but they implement
>>> only single inheritance objects.
>>
>>I'm surprised that anyone finds multiple inheritance so singularly
>>important.
>>
>>Single inheritance is really only crippling if two kinds of objects have
>>to inherit from a common base in order to be substitutable.
>
> That's why SI languages implement interfaces - the poor person's MI.
Well, SI in *static* languages!
SI in *dynamic* languages doesn't need interfaces.
I should know; I made one:
1> (defstruct apple nil (:method rot (me) `@me rots`))
#<struct-type apple>
2> (defstruct orange nil (:method rot (me) `@me rots`))
#<struct-type orange>
3> (each ((f (list (new apple) (new orange))))
(prinl f.(rot)))
"#S(apple) rots"
"#S(orange) rots"
apple and orange are not related; no "rottable" interface is
needed to legitimize the .(rot) call.
I mean, phooey; over my dead &body.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.