3 Aug 2005 16:26
Re: [stack] an exchange on flatness
Daniel Ehrenberg <microdan <at> gmail.com>
2005-08-03 14:26:16 GMT
2005-08-03 14:26:16 GMT
On 8/2/05, William Tanksley, Jr <wtanksleyjr <at> gmail.com> wrote: > Daniel Ehrenberg <microdan <at> gmail.com> wrote: > > > The code is represented by a data structure. You use a compile-time > > > list. A list is a great way to gather concatenative code together, but > > > a very poor way to dissect and manipulate code -- you can do things > > > with lists that aren't sensible with code. > > > What are you saying? That a language needs to restrict how people > > manipulate code? > > No. I'm saying that code isn't a data structure. Perhaps I'm > misphrasing that; perhaps I should say something like "computations > aren't data structures". I can see that my origiinal phrasing was > misleading. The reason I say that is that every data structure we've > used to represent computations implies that you can manipulate the > data structure to determine things about the computation. > > And that's just not true. Turing proved it -- the only general way to > know things about computations is to actually run them. Languages that > allow you to know the data structure used to represent a computation > automatically put limitations on the computation. > > For example, Joy's documentation mentions that identities such as "dup > drop == nop" don't hold within quotations, because someone might use > the length of the quotation (list). > ...ok, but I don't really see any place for 100% abstract computations in any programming language, and it's still extremely useful to have code be a data structure. The quotation *is* a list, and there's nothing you could say to make it not. It makes no sense to do length the way you're picturing on quotations, though their length might be needed to produce another quotation from them. Any optimizations that the compiler might do, such as removing dup drop, should be done in a way invisible to the user. > > It is very useful to have code be > > [represented by] an accessable data structure; > > Agreed. When I said "code" I should have said "computations". When you > say "code" you're referring to the stuff that the programmer > manipulates in order to specify the computation. There are no computations. Computations are just a way of thinking about what's actually happening, but they don't exist within the language, as you've said would be impossible. So it's pretty useless to talk about computations at all. Daniel Ehrenberg ------------------------ Yahoo! Groups Sponsor --------------------~--> <font face=arial size=-1><a href="http://us.ard.yahoo.com/SIG=12hgq0ssd/M=362131.6882499.7825260.1510227/D=groups/S=1705006764:TM/Y=YAHOO/EXP=1123086380/A=2889191/R=0/SIG=10r90krvo/*http://www.thebeehive.org ">Get Bzzzy! (real tools to help you find a job) Welcome to the Sweet Life - brought to you by One Economy</a>.</font> --------------------------------------------------------------------~-> Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/concatenative/ <*> To unsubscribe from this group, send an email to: concatenative-unsubscribe <at> yahoogroups.com <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
RSS Feed