From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: Date: Fri, 13 Nov 2009 16:19:20 -0200 Message-ID: From: Iruata Souza To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [9fans] MIPS LSB compiler Topicbox-Message-UUID: 9aea0970-ead5-11e9-9d60-3106f5b1d025 On Fri, Nov 13, 2009 at 3:48 PM, Tim Newsham wrote: >> =C2=A0 * A ducktyping of sorts with interfaces and such. On the surface >> it just saves >> =C2=A0 =C2=A0 you a bunch of "extends XXX", but it actually seems to bri= dge >> the gap between >> =C2=A0 =C2=A0 dynamically typed world and a statically typed one to an e= xtent >> that makes me >> =C2=A0 =C2=A0 rethink whether static typed languages are as devoid of fu= n as a >> Principia Mathematica is. > > The type system is more restrictive than duck typing. =C2=A0Thats sort > of the point of any static type system. =C2=A0But there are useful constr= ucts > that you can express in a dynamically typed language or a language > with a more complex type system that you cannot express in go. =C2=A0A > good, simple example is "map". =C2=A0Go would need generics to support it= . > $GOOROOT/src/pkg/bytes/bytes.go:248 func ToLower(s []byte) []byte { return Map(unicode.ToLower, s) }