[nem-pl] My i Haskell

Kamil nazgul at omega.pl
Tue Dec 23 13:59:52 CET 2003


Hej!
Czytam sobie tą pracę o Meta-Haskellu i zauwazylem dwie istotne rzeczy,
które oni mają potencjalnie lepiej:
-chodzi o to, ze oni sobie quotowanie typujsa w srodku
 my quotowanie od razu tlumaczymy na wyrazenie ktore ono oznacza
i u nas teraz <[ 1+ true ]> przechodzi
(przynajmniej dopóki nie uzyje sie tego gdzies)
oni wpadli na pomyl, zeby najpierw sobie ten srodek quotowania otypowac
i dopiero potem robic to co my
tzn. to typowanie chyba potem jest ignorowane, ale wylapuje bledy wczesniej

i wydaje sie, ze to jest luz, zrobimy to tak samo jak oni :D

- druga sprawa jest delikatniejsza:
<[ f (x) { x } ]>
u nich za x i f jest podstawiana unikalna nazwa
tzn. ze jak ktos przekaze tam czegos uzywajacego x lub f, to nie bedzie
konfliktow
u nas w tym celu robimy np. <[ def _N_whileloop ()... ]>
i to byla swiadoma decyzja zeby dalo sie latwo pisac
<[ Nemerle.Complier.Parsetree.E_ref .....]>
i zeby to E_ref w srodku to bylo E_ref, a nie jakas podmieniona zmienna

gdyby wprowadzic podmienianie, to trzebaby pisac jakos
<[ $("Nemerle" : var).$(... ]>
ale chyba jednak korzysci z tego sa wieksze
bo czesciej ludzie uzywaja makr w takim kontekscie, ze nie uzywaja
konkretnych nazw tylko chca miec automatycznie nowe
przynajmniej tak pisza w H., ze to jest dobre i ze u nich jest slabo, bo nie
we wszystkich konstrukcjach udaje im sie to wprowadzic

u nas tez sie da zrobic przemianowanie
def x = newsymbol; <[ (x: var) ]>
ale zawsze jedno ze znaczen bedzie trudniejsze (dluzsze) do napisania
i pytanie ktore powinno byc krotsze, a ktore dluzsze

Pawel proponuje, zeby
napisać %x i wiadomo, że to jest def x = newsymbol <[ (x : var) ]>
czyli kolejny krzak, ktory by to zalatwial
i oczywiscie umozliwic oba sposoby, ale to jeszcze nie rozwiazuje
wszystkiego
bo % bylby wazny tylko w obrebie jednego quotowania:
jak napisze <[ %x ]> :: <[ %x ]> :: []
to to juz bedzie inny x

na pocieszenie mamy, ze jak by bylo <[ x...]> jako nowa zmienna, to oni tez
maja problem z <[ x]> :: <[ x]> :: []
wiec luz, co bysmy nie zrobli, i tak bedziemy lepsi od H.

pytanie (Łukasz) - czy da sie to zrobic ladniej

A ogólenie to wiadomosci z frontu powalania Haskella na lopatki sa jak
najlepsze.

Wesołych Świąt
Kamil





More information about the devel-pl mailing list