[nem-pl] Kolorowanie zmiennych przez inne funkcje

Kamil Skalski nazgul at omega.pl
Thu Mar 11 12:42:20 CET 2004


Thursday 11 of March 2004 12:27, Kamil Skalski wrote:
> W ten sposób możemy opcjonalnie i elegancko powiedzieć, że dana funkcja
> jest higieniczna:
>
> public [Hygienic] make_code () : Expr {
>   <[ def x = 1; bla (x) ]>
> }
>
> kod wygenerowany przez make_code nie wprowadzi żadnej definicji w miejscu w
> którym zostanie użyty (bedzie higieniczny).

EDIT: Implikacje takie rozwiązania są niezwykle ciekawe. W szczególności 
zachowanie funkcji UseSiteSymbol. Nada ona symbolowi kolor, który ma makro, 
które wywołało tą funkcję. Zatem pisząc 

def code = make_code (); 
<[ $code; x ]>

wszystko zachowuje się doskonale wg znanych już intuicji. Hmm, znaczy dokonale 
znanych mi intuicji... 

Ciekawe czy ktoś kiedyś będzie używał takich różnych sztuczek... Nawet jeśli 
nie, to nie szkodzi, bo są one dość prostą kosekwencją bazy naszego systemu i 
stanowią po prostu spójne jego dopełnienie.

Kamil





More information about the devel-pl mailing list