🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.pascal
8 messages
8 total messages Started by webmajsterek Thu, 29 Apr 2010 21:38
Generic
#92998
Author: webmajsterek
Date: Thu, 29 Apr 2010 21:38
11 lines
1142 bytes
we FPC 2.3.1 wprowadzona kilka nowych słow kluczowych 

np: Generic ( http://wiki.freepascal.org/Generics ) i  specialize .


moze ktos to w miare senowny sposob wytłumaczyć jak to cóś  działa ??? 
albo jakiś przykład z opisem po polsku.


-- 
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: Generic
#92999
Author: Łukasz 'Maly' Ostrowski
Date: Thu, 29 Apr 2010 21:48
18 lines
1416 bytes
On Thu, 29 Apr 2010 23:38:01 +0200, webmajsterek@poczta.onet.pl wrote:

> we FPC 2.3.1 wprowadzona kilka nowych słow kluczowych 
> 
> np: Generic ( http://wiki.freepascal.org/Generics ) i  specialize .
> 
> 
> moze ktos to w miare senowny sposob wytłumaczyć jak to cóś  działa ??? 
> albo jakiś przykład z opisem po polsku.

Wiesz jak działają template's? Po polsku? Mocno typowane kolekcje
przykładowo? Więcej!?!??!?!!!!!!!!!!!!?!!?!????????????

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
ICQ: 148498663     GG: 2544385      AIM: malyzgora
GTalk: l3vi4than@gmail.com        ASTRA: L3viathan
[OT]Re: Generic
#93000
Author: Terrmit
Date: Thu, 29 Apr 2010 23:21
13 lines
1453 bytes
> On Thu, 29 Apr 2010 23:38:01 +0200, webmajsterek@poczta.onet.pl wrote:
>
> Wiesz jak działają template's? Po polsku? Mocno typowane kolekcje
> przykładowo? Więcej!?!??!?!!!!!!!!!!!!?!!?!????????????
>
Na widok webmajsterka Łukaszowi włos się zjeżył,
że aż mu klawisze ? i ! wpadły w dygotanie.

Sorry, ale uśmiałem się szczerze :)
Chociaż, niby czemu nie po polsku?
Tak! Polski to nasz język! (Jak sądzę) ;p

Sławek
Re: [OT]Re: Generic
#93001
Author: Łukasz 'Maly' Ostrowski
Date: Fri, 30 Apr 2010 09:29
22 lines
1610 bytes
On Fri, 30 Apr 2010 01:21:54 +0200, Terrmit wrote:
> Na widok webmajsterka Łukaszowi włos się zjeżył,
> że aż mu klawisze ? i ! wpadły w dygotanie.
> 
> Sorry, ale uśmiałem się szczerze :)
> Chociaż, niby czemu nie po polsku?
> Tak! Polski to nasz język! (Jak sądzę) ;p

Jezus chytrus, trzeźwy wczoraj nie byłem przesadnie,
wybaczcie ;-).

Nasz Webmajsterek i tak nie przebija typa z 
pl.comp.lang.c pewnego ;-). Zadaje normalne pytania,
w zryty sposób, ze zrytą interpunkcją, zrytą 
polszczyzną. A typ z p.c.l.c + zryte pytania + zryta
głowa. ;-)

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
ICQ: 148498663     GG: 2544385      AIM: malyzgora
GTalk: l3vi4than@gmail.com        ASTRA: L3viathan
Re: Generic
#93003
Author: darekm
Date: Fri, 30 Apr 2010 12:37
63 lines
2960 bytes
W dniu 2010-04-29 23:38, webmajsterek@poczta.onet.pl pisze:
> we FPC 2.3.1 wprowadzona kilka nowych słow kluczowych
>
> np: Generic ( http://wiki.freepascal.org/Generics ) i  specialize .
>
>
> moze ktos to w miare senowny sposob wytłumaczyć jak to cóś  działa ???
> albo jakiś przykład z opisem po polsku.
>
>

  type
  GList = generic class of T
  public
    procedure Add(const stuff: T);
  end;

Tworzysz definicję obiektu GList dla pewnego abstrakcyjnego typu danych 
(w powyższym przykładzie T)
T można używać jak jakiś super uniwersalny obiekt, na którym 
dopuszczalna jest każda operacja:
T:=T+1;
T.add;
x:=t.Create;
abs(T)
itd.


na tym etapie kompilatora  obchodzi tylko (częściowa) poprawność składniowa.

Następnie użycie takiego generycznego obiektu (specjalizacja):
GList<string>
kompilator generuje kod programu na podstawie uprzedniej definicji 
podstawiając zamiast T żądany typ (czyli string) a następnie dokonuje 
normalnej już normalnej kompilacji.
Innymi słowy jest to forma preprocesora kodu, który bierze tekst 
programu, odpowiednie go modyfikuje (dokonuje podstawień) i tak 
utworzony kod przekazuje do właściwej kompilacji.


w dużym uproszczeniu można to samo osiągnąć korzystając z makrodefinicji 
$Include i $Define


Po co to stosujemy:
1. Gdy takie same algorytmy stosujemy dla różnych typów danych (inna 
możliwość to dziedziczenie i interface)
2.Gdy chcemy uniknąć stosowania funkcji wirtualnych (są wolniejsze od 
zwykłych)
3. Tzw silne typowanie, choć pascal jest naturalnie silnie typowany
4.Zwiększenie czytelności programu: rozdzielenie uniwersalnej części 
algorytmu od wariantów wykorzystujących pewne indywidualne własności 
niektórych typów danych (template vs specialize)


Darek





-- 
   Darek
Re: Generic
#93005
Author: Wiktor S.
Date: Thu, 06 May 2010 08:46
8 lines
1085 bytes
> moze ktos to w miare senowny sposob wytłumaczyć jak to cóś  działa ???

Nie działa, bo póki co ma zbyt poważne błędy.
Delphi zresztą też, widocznie to trudny temat.


-- 
Azarien
Re: Generic
#93006
Author: wloochacz
Date: Thu, 06 May 2010 09:30
15 lines
1342 bytes
Wiktor S. pisze:
>> moze ktos to w miare senowny sposob wytłumaczyć jak to cóś  działa ???
> 
> Nie działa, bo póki co ma zbyt poważne błędy.
> Delphi zresztą też, widocznie to trudny temat.
Co Delphi zresztą też?
Że w Delphi nie działają generyki?
Skoro jest jak twierdzisz, to jakim cudem np. działają poniższe biblioteki:
http://code.google.com/p/delphi-spring-framework
http://code.google.com/p/delphilhlplib/

??

-- 
wloochacz
Re: Generic
#93007
Author: Wiktor S.
Date: Thu, 06 May 2010 14:58
13 lines
1244 bytes
>>> moze ktos to w miare senowny sposob wytłumaczyć jak to cóś  działa

>> Nie działa, bo póki co ma zbyt poważne błędy.
>> Delphi zresztą też, widocznie to trudny temat.

> Co Delphi zresztą też?
> Że w Delphi nie działają generyki?

a działają już ze stringami?


-- 
Azarien
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads