[nem-pl] Re: =?us-ascii:iso-8859-2:utf-8?Q?=5Bnem-p?=
=?us-ascii:iso-8859-2:utf-8?Q?l=5D_to_ja_znowu_o_sk=B3adni?=
Michal Moskal
malekith at pld-linux.org
Wed Oct 29 14:01:03 CET 2003
On Wed, Oct 29, 2003 at 11:37:17AM +0100, Lukasz Kaiser wrote:
> Hej.
>
> > Dodałem nowy sposób definiowania wartości.
> > ...
> >
> > Stara metoda jest dostępna, ale niezalecana. Znaczy mam nadzieję, się
> > jej pozbyć w najbliższym czasie, ale automatyczna konwersja istniejących
> > źródeł wydaje się trudna :/
>
> Hmm, czemu ? Bo ja moge pisac def zamiast let i ; zamiast in, ale jesli sa
> wieksze problemy to wolalbym wiedziec.
Trzeba dookoła wszystkiego napisać { }.
> > Proszę o komentarze.
>
> Ja tam sie boje. W tym sie za chwile nie bedzie dalo programowac
> normalnie, czyli funkcjonalnie i zrobimy nedzny update C#2. Nie wiem jak
> to bedzie z tymi defami, nie wiem jaki jest problem przy zamianie
> letow.
Wcięcia i {}.
> Uwazam ze to glupio ze trzeba pisac ";" i nie mozna pisac
> "in" zamiast tego, ale jesli "in" nie bedzie slowem kluczowym to moge
> sobie zawsze s/in/;/g. Ale to mniej wazne, znacznie gorszy jest static. Ja
> bardzo przepraszam, ale normalnie to ja wpisuje glownie funkcje ktore nie
> sa metodami. Jak mam przy kazdej funkcji dopisac 6 liter bez potrzeby to
> ja na to nie ide, za duzo roboty.
W OCamlu musisz napisać 'let rec' (przeważnie), to 7 liter. W SML'u fun
i nazwę funkcji parę razy.
> Ale w ogole ja tego nie rozumiem, czemu
> jest:
>
> class List
> {
> static 'a append (x : list ('a), y : list ('a)) : list ('a) =
> match x with [
> | Nil => y
> | Cons ?x => Cons (x#hd, append (x#tl, y))
> ];
> ...
> }
>
> ???
>
> To znaczy co to jest ta class List ? Bo ja rozumiem ze klasa to taki typ,
> ktory ma zawsze te same funkcje, ale ja widze ze w tym
> jezyku sie nie da zdefiniowac normalnej funkcji. Normalna funkcja to taka,
> ktora nie dziala na obiektach jakiejs klasy tylko tak ogolnie, czyli chyba
> to co sie tutaj nazywa static. Jak juz ta funkcja ma koniecznie byc w
> czyms, to moze dla mnie byc w namespace, module, cokolwiek, ale nie w
> class z dodatkowym dopiskiem "static", to jest bez sensu.
Moduł to klasa bez pól i metod (za to może mieć wartości, funkcje i
typy). Być może warto wprowadzić skłądnię:
module M { class M {
foo ... ===> static foo ...
} }
Ale zauważ, że to tylko składnia.
> Ja rozumiem ze
> ludzie programuja obiektowo, ale ten jezyk ma chyba dawac mozliwosc
> programowania nie obiektowego tez.
Daje, Twoim problemem jest dodatkowe 6 literek.
Składnia dla modułów być może nie byłaby zła.
--
: Michal Moskal :: http://www.kernel.pl/~malekith : GCS {C,UL}++++$ a? !tv
: PLD Linux ::::::::: Wroclaw University, CS Dept : {E-,w}-- {b++,e}>+++ h
More information about the devel-pl
mailing list