'match' side-effect interacts with '_htSet'

2009-02-16 Thread Tomas Hlavaty
Hi Alex, I have a web application which displays a page by loading an allowed *.l file. In that *.l file, I use 'match' with @Z pattern var and then process and display the result. The var @Z is set by 'match' to whatever was matched and displaying the data for the first time works fine. Howeve

Re: 'match' side-effect interacts with '_htSet'

2009-02-16 Thread Alexander Burger
Hi Tomas, > time fails with "bad suffix" error as the var @Z in '_htSet' was > rebound by my call to 'match'. It looks like there is some unwanted Using transient symbols would be always an option, but I think it should not be necessary here. Actually, we have two bugs: - Your "*.l" file shou

Re: 'match' side-effect interacts with '_htSet'

2009-02-16 Thread Tomas Hlavaty
Hi Alex, > - '_htSet' is not correct. Though it protects the pattern variables > ('@N', '@V' and '@Z') with 'use', it does not initialize '@Z'. So if > the 'match' in '_htSet' succeeds, '@Z' will be bound to a new value > and everything is OK. But if the 'match' fails, '@Z' is not bound and

Re: 'match' side-effect interacts with '_htSet'

2009-02-16 Thread Alexander Burger
Hi Tomas, > Why is 'use' + 'off' prefered to 'let'? This is mostly a matter of taste. I think I use 'let' much more often than 'use'; it is shorter and more readable. (use (@N @V @Z) (off @N @Z) and (use @V (let (@N NIL @Z NIL) are equivalent, and of equal size (9 cells eac

Re: 'match' side-effect interacts with '_htSet'

2009-02-16 Thread Alexander Burger
Oops! On Mon, Feb 16, 2009 at 07:40:01PM +0100, Alexander Burger wrote: > So it is probably best if I change '_htSet' to > >(let (@V NIL @Z NIL @N) > > even at the cost of (unnecessarily) initializing '@N' to 'NIL'. This Should have been: > (let (@N NIL @Z NIL @V) > > even at the co