# Re: no names allowed, we serve types only

Date: Thu, 18 Feb 2010 00:36:10 -0800 (PST)

Message-ID: <2d1f2caa-a8ce-48ee-815e-2fd9bc3d339c_at_b36g2000pri.googlegroups.com>

On Feb 18, 3:36 am, Nilone <rea..._at_gmail.com> wrote:

> You're right. I'm a programmer rather than a mathematician. As such,

*> infinite sets can only be approximated and every value has a cost in
**> space and time. So I'm interested in how operators would be
**> effectively (and hopefully, efficiently) defined in a software version
**> of such a model.
*

A typeless language can simply reference built-in or predefined sets and operators by name. The crucial point is that all sets and operators (whether built-in or user defined) don't have any concept of a type.

E.g. there could be a built-in set named Z3 that's implicitly defined as follows:

Z3 = { 0,1,2 }

There could be a built-in operator named + implicitly defined as the triple:

( (Z3xZ3), Z3, { ((0,0),0), ((0,1),1), ..., ((2,2),1) }

A language could allow a user-defined function named F:

let F = (Z3, Z3, (lambda x.x+x))

F has domain Z3, co-domain Z3 and graph {(0,0),(1,2),(2,1)}. F itself doesn't have a type.

Since this language has gone to the trouble to represent domains and co-domains for the operators it is very similar to a typed language. A compiler can validate the code or make use of optimal hardware encodings of elements of the built-in sets.

There is no problem referring to built-in sets like the integers or the set of all finite strings. These are countably infinite so it is possible to encode any given element in finite memory space. Received on Thu Feb 18 2010 - 09:36:10 CET