Path: csiph.com!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Ben Bacarisse Newsgroups: comp.lang.javascript Subject: Re: passing a set of numbers to a function Date: Thu, 04 Feb 2016 20:25:35 +0000 Organization: A noiseless patient Spider Lines: 53 Message-ID: <87bn7wnry8.fsf@bsb.me.uk> References: <19679ed0-c594-4f7e-817c-a72bd5c10411@googlegroups.com> <22041181.SJtjrm8m6U@PointedEars.de> <87r3gso59h.fsf@bsb.me.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Injection-Info: mx02.eternal-september.org; posting-host="017616aa25f81ec581c44d76d61ba2f3"; logging-data="12383"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/7nH85mHkhw++GSAAPHLcu923b5kMSXU8=" Cancel-Lock: sha1:T7D8+lzpMVouKxuwXTZfQ4oNO3Y= sha1:Hhg873wHLxXkjv0jd8VO5oGfqqI= X-BSB-Auth: 1.d8525f75abca65f76058.20160204202535GMT.87bn7wnry8.fsf@bsb.me.uk Xref: csiph.com comp.lang.javascript:29530 ram@zedat.fu-berlin.de (Stefan Ram) writes: > Ben Bacarisse writes: >>Computer programs can implement infinite sets though only very few of >>them (even fewer, compared to how many there are, than for finite sets). > > This is a helper function »contains« for array-like objects: > > function contains( alo, val ) > { for( let i = 0, l = alo.length; i < l; ++i ) > if( alo[ i ]=== val )return true; return false; } > > . With this helper function, I can define a JavaScript > function that can compute the union of some sets. > > function union(){ return contains( arguments, "Z" )? "Z" : "N"; } > > Now, »union( "N", "N", "Z" )« will give »"Z"«, which agrees > with the fact that the mathematical union of the set »N« > (natural numbers) and the set »Z« (integers) (here, »N u N u Z«) > is »Z«. > > I can extend my implementation to some other sets, > for example, I could include the finite set »{1}«, > which I might represent by the string »"{1}"«: > > function union() > { return 0, > contains( arguments, "Z" )? "Z" : > contains( arguments, "N" )? "N" : "{1}"; } > > So, I have shown an implementation for the subrealm »< N, Z, > {1} >«. But not an implementation for the realm of /all/ sets. > In mathematics, we have the operation »u« (union), and it > /is/ defined for all sets. > > It was no problem for me that some of the sets of my > implementation are not finite. But the realm of my sets > was finite (it included two, and later three, sets). > > But while there is a theoretical limitation (we also cannot > implement all properties of real numbers with our > floating-point numbers), mathematical algebra systems (like > Mathematica) might still provide some useful implementation > for set operations for some common sets. I've left it all because (as is not uncommon with your posts) I'm not exactly sure what your point is. You don't seem to be disagreeing with me, but you are not advocating anything very exciting with your finite collection of named sets. -- Ben.