[nem-pl] Dalsze rozważania o higienicznych makrach

Kamil Skalski nazgul at omega.pl
Mon Feb 23 23:45:59 CET 2004


Monday 23 of February 2004 23:17, Marcin 'Qrczak' Kowalczyk wrote:
> A, racja, zły przykład. Dobry przykład z forem jest taki:
>
>    macro do_times (n, body)
>    syntax ("do_times", n, body) {
>       <[ for (i <- 0; i < $n; i <- i + 1) $body ]>
>    }
>
> Kompilator powie, że "i" jest nieznane, bo nie widzi, że jedno "i"
> zwiąże pozostałe.

Kompilator zawsze tak powie... bo for nie wprowadza w żaden sposób definicji 
i. Fora używa się 'for (mutable i <- 0; i < n; i <- i + 1) { ... }. Ale co 
racja to racja, że ten for co napisałem zacytowany nie zadziałam, choć z 
innego powdu. Nie zadziała z powodu, który wspominałeś, poprawne
<[ mutable i <- 0;
    for ((); i < $n; i <- i + 1) $body ]> 

No nic, coraz bardziej przekonuję się, że trzeba będzie od razu to zrobić 
dobrze... Ale pewnie prościej będzie te przypadki zrobić NewSymbolem na razie 
i ogólne rozwiązanie jednak na przyszłość.

No i ogólnie już nie musisz nam udowadniać, że pomyślany system jest zły, bo 
zostało pokazanych dużo przykładów. :)





More information about the devel-pl mailing list