Path: news.daimi.aau.dk!not-for-mail From: Erik Ernst Newsgroups: daimi.beta Subject: Re: Hmm ... Date: 05 Jun 1998 00:09:04 +0200 Organization: DAIMI, Computer Science Dept. of Aarhus Univ. Lines: 59 Message-ID: References: <3556DFB7.2B2@daimi.aau.dk> NNTP-Posting-Host: fraxinus.daimi.aau.dk Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Newsreader: Gnus v5.3/Emacs 19.34 Xref: news.daimi.aau.dk daimi.beta:10348 Mikkel Ricky writes: > > Hej! > > Er det en bug eller en feature, at følgende BETA-program er lovligt? > > > ORIGIN '~beta/basiclib/current/betaenv'; > > --- Program: Descriptor --- > (# > do 6*9 = 42; > 87; > #) > > > Det der undrer er, at udtryk kan bruges som statements. Hvis det er en > feature er der så et sted, hvor det er anvendeligt eller (måske) > ligefrem smart? Det er da helt klart en feature! ;-) Det gør det fx muligt at skrive newline; selvom 'newline' i betaenv.bet er lavet således: newline: (* writes the nl-character *) (# do ascii.newline->put exit THIS(stream)[] #); så man også kan skrive (5->(myText.newline).putint).newline; å aldenslags. Det illustrerer iøvrigt at syntaksen for computed remote har en tendens til at blive tung (der bliver flere og flere parenteser), men til gengæld er der ingen problemer med at afgøre, _hvad_ det er man udfører en computed remote på .. hvordan skulle syntaksen forresten være for at bevare utvetydigheden og undgå alle parenteserne? 5->myText.newline:putint:newline er ikke godt nok (man kan ikke se at "5" skal proppes ind i 'putint', og det ville være meget utraditionelt at afgøre den slags syntaktiske tvetydigheder v.hj.a. type-analyse, à la "det er alligevel kun 'putint' som vil have det femtal"). hejsa, -- Erik Ernst eernst@daimi.aau.dk Computer Science Department of Aarhus University, Denmark