[nem-pl] Widze jak ty to widzisz
Lukasz Kaiser
kaiser at tenet.pl
Mon Nov 3 19:49:58 CET 2003
Hej.
> Po prostu u mnie zwykÅe zmienne miaÅy mniej wiÄcej tÄ
semantykÄ, ktora u
> ciebie maja $(zmienne)
> Na "Twoje" mozna ten przyklad przetlumaczyc
> | <[ $x <- $y + $z ]> -> def (ny, nz) = (f y, f z);
> <[ $x <- $ny - $nz ]>
>
> No ale skoro juz rozumiem, o co ci chodzilo z tym $, to mnie objawilo, ze to
> lepszy sposob.
Nie wiem czy koniecznie lepszy, ale jesli u ciebie wszystkie zmienne to
zwykle zmienne to jak zmatchowac takie cos: <[ x <- $(x) ]> ;).
Pewnie tez da sie jakos obejsc, mozna zrobic cos dodatkowo itd., ale mysle
ze warto zaczac od $() a potem myslec o zmniejszeniu ilosci kodowania
(cytat z Michala (mniej wiecej) - premature optimizations are root of all
evil ;)).
> Tak, zeby otrzymac na koncu (po wykonaniu sie rozszerzenia) typedtree, to
> trzeba typowac "w locie", czyli np. przerobic typowanie calego jezyka... Ale
> czy na pewno chcemy mieszac nasze rozszerzenia z typami? Kusi mnie pomysl,
> zeby rozszerzenia traktowaly typy czysto syntaktycznie. Pewnie utnie to
> jakies mozliwosci, ale przynajmniej bedzie proste do zrobienia. Niech otypuje
> sie dopiero po wszystkim - to wymusza brak mozliwosci dobrania sie do typow
> w matchowaniu wyrazen, ale nie uniemozliwia zabawy z typami, funkcjami,
> klasami (tyle ze bedzie ona na poziomie stringow).
Nie wiem na ile to bedzie przeszkadzac. Mysle ze w tej chwili to nie
przeszkadza prawie w ogole bo wszedzie gdzie mozesz potrzebowac typ to
user i tak go musi w kodzie wpisac i masz przynajmniej ten string. Jak
powstanie jakas rekonstrukcja typow to bedzie gorszy problem, bo user
sobie wpisze albo nie ten typ a ty musisz oba przypadki uwzglednic w
rozszerzeniu, co efektywnie zatruje pisanie rozszerzen. Ale jesli
rozszerzenia zaczna dzialac zanim w ogole zacznie sie zabawa z
rekonstrukcja typow to przynajmniej bedzie wiadomo gdzie sie pojawiaja
problemy i bedzie mozna je wtedy usuwac. Moze jakas prosta rekonstrukcja
typow da sie zrobic na tyle "w locie" zeby to dzialalo, nie wiem. Ale
to chyba nie jest problem na teraz.
> > E_fun_parm ( s, t ) -> ...
> > E_fun_parm ( s, t ) :: xs -> ...
>
> To bylby tak naprawde jedyny moment, w ktorym znamy typ parametrow... No ale
> moze dobrym pomyslem jest napisanie takiego ubogiego systemu, a potem
> zastanowienie sie jak inteligentniej typowac rozszerzenia.
Powoli, wszedzie tam gdzie user wpisal tym tam my go znamy. Czy sa juz w
tej chwili w Nemerle miejsca w ktorych mozna wpisac typ ale nie trzeba
? Jesli jeszcze nie ma to fajnie, rozszerzenia skladniowe moga na razie
zakladac ze typy sa wszedzie wpisane i nie ma problemu.
- lk
More information about the devel-pl
mailing list