[nem-pl] Zmiany składniowe
Kamil Skalski
nazgul at omega.pl
Wed Oct 15 16:55:24 CEST 2003
On Wed, 2003-10-15 at 16:14, Michal Moskal wrote:
> On Wed, Oct 15, 2003 at 03:50:59PM +0200, rzyjontko wrote:
> > Michal Moskal napisał:
> > >
> > > {
> > > ref x = 3;
> > > while (x < 7) {
> > > x = x + 1; // ERROR
> > > foo ()
> > > }
> > > }
> >
> > Najpierw taka marginalna uwaga. Czy
> > ref x <- 3;
> > nie byłoby bardziej konsekwentne?
>
> Z jednej strony racja (bo to pierwsze przypisanie), a z drugiej = jest
> używane do definicji wartości (a definiujemy nową wartość). Więc nie
> wiem.
>
> > Podany błąd jest analogiczny do tych, które powstają w językach bez
> > deklaracji zmiennych. Ale ludzie się czepiają wszystkiego.
> > Ostatecznym argumentem zawsze będzie, że Nemerle to nie C#. Każdy
> > manual do Lispa zawiera coś na kształt "common pitfalls in local
> > bindings".
> >
> > Wydaje mi się, że problemem jest to, że dla zwyczajnego człowieka '='
> > wydaje się bardziej naturalne niż <-. Więc może zamienić '<-' z '='?
>
> Ale <- dobrze obrazuje przypisanie.
>
Tez tak mysle. Gdy przypisujemy pod wskaznik to rzeczywiscie mozne
mowic o jakims "przeplywie" <-
Popieram tez trzymanie sie konsekwentnie <- jesli chodzi o wskazniki
i = przy wartosciach funkcjonalnych.
> Myślałem też nad:
>
> {
> let ref x = 3; // lub "ref x = 3", lub też '<-' zamiast '='
> let y = x + 3;
> x <- 3;
> }
>
> A czegoś takiego jak "x = 3;" by po prostu nie było. Oczywiście ktoś
> może ciągle myśleć, że "let x = 3;" to jest przypisanie, ale teraz już
> sam jest sobie winny. Znaczy pomyłkę = vs <- można zrozumieć, ale
> dopisanie dodatkowego keyworda, to już jest perwersja ;-)
>
> Zamiast let może jakieś inne słowo, np. val. Na pewno coś krótkiego.
>
let mi sie podoba, na chama mogloby byc nawet
let x be Nil in
albo
let x denote 7 in
ale ostatecznie tak jak jest = wydaje sie w porzadku
podsumowujac, podoba mi sie tak:
let ref x <- 5 in
let y = 0 in
x <- y
More information about the devel-pl
mailing list