[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