Björn Lindgren skriver:
> 31 mar 2009 kl. 17.38 skrev Andreas Davour:
> 
> > On Tue, 31 Mar 2009, Ingvar wrote:
> >
> >> Jag skriver:
> >>>                      Att författaren därtill inte verkar ha
> >>> förstått till fullo vad DEFVAR faktiskt gör är skrämmande.
> >>
> >> Lite fånigt exempel i det lilla, men tänk dig en medelstor till
> >> brutal-stor kodbas (10-200 kodfiler, 50 KB-någon GB kod):
[ Kodexempel borttaget ]
> >> Tryck i en fil och kör. Tag sedan bort kommentaren innan defvar och
> >> kör. Att glatt säga "det finns en kodkonvention, men jag tycker den  
> >> är
> >> ful, så jag ignorerar den" i ett introduktionsmaterial, där  
> >> resultatet
> >> av att INTE anamma konventionen är ypperst svårfunna buggar är, i min
> >> mening, inte försvarbart.
> >
> > Oavsett Xach så verkar ju boken onekligen ha brister!
> 
> Man behöver kanske inte vara så förmäten. Jag har i mitt arbete  
> förmånen(?) att ofta använda en annnan Lispdialekt, där en konvention  
> för dynamiska variabler inte existerar, och där asterisk inte utan  
> vidare kan användas i symbolnamn. Jag kan försäkra att det går att  
> hålla ordning på sina program ändå. Naturligtvis vill man alltid veta  
> om en variabel i ett visst sammanhang avser en dynamisk eller lexikal  
> sådan, men det går att göra på många olika sätt. Man kan ha andra  
> sorters konventioner till exempel.

Javisst. Jag hackade CL i ett par år innan jag började använda asterisker på 
mina egna special-variabler. Jag har dock ingen lätt-att-hitta-kod som exempel 
(de vettiga sakerna har blivit omskrivna, de mindre vettiga ligger arkiverade 
i ett dammigt hörn av hårddisken och varken du eller jag vill se den koden, 
speciellt inte jag).

>                                    Nu använder jag för egen del alltid  
> asterisk-konventionen när jag programmerar Common Lisp, eftersom den  
> är etablerade för den dialekten, men jag skulle inte förkasta en hel  
> bok för att författaren möjligen har egna konventioner i detta  
> avseende. 

Jag säger inte att boken är dålig, det kan jag inte. Jag har inte läst den, 
men den har tillräckligt många varningstecken för att skicka den rätt långt 
ner på listan över böcker att köpa (om du vill kan jag t.o.m lista dem). 
Hyllmeter är en EXTREM bristvara och jag har inte råd att köpa ett större hus 
just nu.

>            Ingvars exempel ovan är tämligen krystat, och avsett att  
> vara det. Men innan vi har läst boken vet vi faktiskt inte om det är  
> ett exempel som alls motsvarar vad författaren ägnar sig åt.

jag vet inte om du läste författarens kommentar till Xachs ganska syrliga 
sågande, men det tycktes mig att han mest tyckte att det var behändigt att 
inte markera dynamiska variabler, för att det blev enklare att svänga fram och 
tillbaka mellan dynamiska och lexikala bindningar. Det är iofs en ren smaksak, 
men jag har tagit för vana att INTE göra just det, utan dynamik-deklarera 
saker som behöver vara dynamiska och låta resten vara lexikala, just för att 
ett evigt hattande fram och tillbaka brukade bita mig rätt hårt.

Numer blir jag mest biten när jag växlar mellan Common Lisp och Emacs Lisp. 
Attans vad lexikala bindningar är trevligt.

Dougs exempel när det kan vara bra att hatta fram och tillbaka mellan dynamisk 
och lexikal bindning är förresten näst intill identisk med min "kod med 
problem" (gå till Reddit-sidan i början av tråden och sök efter "Say you have 
a bunch of functions").

//Ingvar


_______________________________________________
Lisp mailing list
Lisp@lisp.se
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp

Till