-
191. Data: 2012-06-14 21:36:37
Temat: Re: c#
Od: " alter amonu" <f...@g...SKASUJ-TO.pl>
noma <f...@g...SKASUJ-TO.pl> napisał(a):
> > (...) 'koboldem wspólczesnosci'
>
> aczkolwiek moze dodam 'pro forma' że rozmaite moje opinie
> jak np ta moga nie być (a wrecz na pewno nie sa) jak to sie
> mowi 'całkiem wiążące', bo mam wyrywkową wiedze, doswiadczenie
> itp (aczkolwiek za c# _na pewno_ nie przepadam ;-)
>
>
(pozatym pomylilem sie bo chodzilo mi nie o kobolda tylko o
cobola: 'cobolem wspolczesnosci' )
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
192. Data: 2012-06-14 21:41:32
Temat: Re: Czym jest programowanie?
Od: Michoo <m...@v...pl>
On 14.06.2012 08:41, Stachu 'Dozzie' K. wrote:
> On 2012-06-13, Michoo<m...@v...pl> wrote:
>> int b=64;
>> int a=32;
>> auto l = [&]()->int { return b+a; };
>> printf("%i %i: %i\n",a,b,l());
>> b=1,a=3;
>> printf("%i %i: %i\n",a,b,l());
>
> A jak opuścisz teraz blok, gdzie są zdefiniowane a i b?
>
To masz wiszącą referencję.
Zależnie od kontekstu możesz:
1. przekazać przez wartość [=]
2. przenieść zmienną lokalną do pola klasy
3. zrobić ze zmiennej lokalnej wartość współdzieloną, np:
std::function<int(void)> foo(){
std::shared_ptr<int> a(new int),b(new int);
*a=10;
*b=15;
return [=](){return *a+*b;};
}
--
Pozdrawiam
Michoo
-
193. Data: 2012-06-14 21:43:05
Temat: Re: Czym jest programowanie?
Od: "R.e.m.e.K" <g...@d...null>
Dnia Tue, 5 Jun 2012 23:24:47 +0200, slawek napisał(a):
> Czym jest w takim razie - jednym zdaniem i jednocześnie ogólnie -
> programowanie?
Konstruowanie planu zadan do wykonania przez okreslone jednostki.
--
pozdro
R.e.m.e.K
-
194. Data: 2012-06-14 21:49:08
Temat: Re: Czym jest programowanie?
Od: Wojciech Muła <w...@g...com>
W dniu czwartek, 14 czerwca 2012 21:18:20 UTC+2 użytkownik Michoo napisał:
> On 14.06.2012 12:31, Wojciech Mu�a wrote:
> > W dniu czwartek, 14 czerwca 2012 01:39:27 UTC+2 u�ytkownik Michoo napisa�:
> > A to co, jak nie podanie explicite zakresu dost�pu.
> Sposobu dost�pu - warto�� czy referencja (czy brak).
Ale po co? Gdy wprowadzasz nowy zakres (np. ifem) to nie
musisz pisać jaki będzie sposób dostępu do zmiennych
z zewnętrznych zakresów.
> > O tym pisa�em, �e programista *musi* przy definicji
> > ustali�, do czego funkcja ma dost�p.
> Zarzucasz, �e je�yk daje za du�e mo�liwo�ci programi�cie zamiast
> ograniczy� si� do jedynej s�usznej wersji? No bez jaj...
Sorry, ale to klepanie 3 znaków bez sensu. :)
> > BTW funkcje anonimowe s� og�lnie przereklamowane.
> Uwa�am, �e s� wygodne:
> [...]
Nie twierdzę, że niewygodne, jednak sama idea mnie nie
porywa, nawet w ukochanym pythonie nie używam dla onlinerów.
BTW jestem ciekaw, jak wygląda debuggowanie takich
anonimowych cudaków.
w.
-
195. Data: 2012-06-14 21:51:27
Temat: Re: Czym jest programowanie?
Od: "AK" <n...@n...com>
Użytkownik "Michoo" <m...@v...pl> napisał:
> Uważam, że są wygodne:
> 1. jak masz powtarzające się 3-4 linijki istotne tylko w obrębie jakiegoś bloku to
robienie z tego
> metody jest zaśmiecaniem klasy. Funkcja anonimowa to rozwiązuje
Tak to jest gdy ktos widzi tylko krzyzyki :(.
Procedurye lokalne byly dostepne juz w ojcu j.prog czyli Algolu
(ze juz o Pascalu nie wspomne).
Bez zadnych udziwnien skladni i idiotycznych nazw w rodzaju lambda.
AK
-
196. Data: 2012-06-14 22:01:33
Temat: Re: Czym jest programowanie?
Od: "AK" <n...@n...com>
Użytkownik "slawek" <s...@h...pl> napisał:
> Jak rozumiem ty sam podróżujesz z miejsca na miejsce po odcinku prostej łączącej
punkt A z punktem
> B w przestrzeni czterowymiarowej?
Ale nie :) Po prostu nigdy nie dalem i nie dam sie przywiazac do zadnej "kuli".
Mentalnie przywiazac.
> Przypominam - tematem dyskusji jest "jak zdefiniować czym jest programowanie" - z
dodatkowym
> zastrzeżeniem, że definicja ma być nieograniczona do "ciągów instrukcji" itp.
określeń, tzn.
> uwzględniać dokładnie wszystkie paradygmaty.
Przeciez to u Ciebie jest ograniczona prawie wylacznie do Fortranu.
A Fortran to wlasnie chora skladnia (fakt ze od F90 juz zdecydowanie
ulepszona. Doceniam to). No moze oprocz chorych pointerow
ktore po ch..re do Fortranu wprowadzono) i _nic ponad to_
co daja inne tego typu jezyki.
Istnieja nie tylko Ayatollahowie C/C++. Ayatollahowie Fortranu tez.
AK
-
197. Data: 2012-06-14 22:15:00
Temat: Re: Czym jest programowanie?
Od: "AK" <n...@n...com>
Użytkownik "Wojciech Muła" <w...@g...com> napisał:
> Nie świadczy o jakiś wyjątkowych zaletach C.
No cooo Ty Wojtek !
Przecie to supek jezyk ! :)
Szczegolnie famfastyczne w C/C++ np. jest to, ze
MX_UINT + 1 == 0 !!!
PS: To z quizu. Mialem score: 20 na 20 ale spoko.
Pomylilem sie 3 razy chyba (za pierwszym razem jeno) i..
jestem z tego dumny :) Bo gdybym sie skupil i
nie daj Boze nie pomylil to znaczyloby, ze mi calkiem
na stare lata odwalilo i stalem sie robotem /albo brr..
jakims Ayatollahem/ ;)
PS: _nigdy_ nie polegam na promocjach w C/C++.
Zawsze w nawet najmniej watpliwych przypadkach
robie "coerce"" recznie.
PS1: Czy wiesz ze wiekszosc obecnych tu fachowcow
C++ swiecie wierzy ze nawiasy w C/C++ wymuszaja
kolejnosc obliczen ? :) Twierdza tak ludzie naprawde
madrzy i doswiadczeni ktorzy (w przeciwienstwie do
mnie) znaja na wylot templates, rvalues czy inne std-es.
AK
-
198. Data: 2012-06-14 23:04:47
Temat: Re: Czym jest programowanie?
Od: Maciej Sobczak <s...@g...com>
On 14 Cze, 16:35, Roman W <b...@g...pl> wrote:
> Oczywiscie ze mozna bez wyjatkow, C przeciez sobie radzilo z takimi sytuacjami bez
wyjatkow ;-)
A to wcale nie jest śmieszne - cała masa języków sobie w ten sposób
radziła i miało to nawet taką zaletę, że nie było niejawnych
rozgałęzień w kodzie. Znacznie łatwiej się coś takiego analizuje,
również automatem.
> A co robi wtedy SPARK?
SPARK jest językiem i jako taki nie obsługuje ani baz danych ani
plików. Można w nim natomiast napisać bibliotekę, która to robi. Co ta
biblioteka wtedy zrobi? To zależy, jak jej autor to wymyśli - ale na
pewno nie rzuci wyjątku.
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
-
199. Data: 2012-06-15 00:41:40
Temat: Re: Czym jest programowanie?
Od: Michoo <m...@v...pl>
On 14.06.2012 21:49, Wojciech Muła wrote:
> W dniu czwartek, 14 czerwca 2012 21:18:20 UTC+2 użytkownik Michoo napisał:
>> On 14.06.2012 12:31, Wojciech Mu�a wrote:
>>> W dniu czwartek, 14 czerwca 2012 01:39:27 UTC+2 u�ytkownik Michoo napisa�:
>>> A to co, jak nie podanie explicite zakresu dost�pu.
>> Sposobu dost�pu - warto�� czy referencja (czy brak).
>
> Ale po co? Gdy wprowadzasz nowy zakres (np. ifem) to nie
> musisz pisać jaki będzie sposób dostępu do zmiennych
> z zewnętrznych zakresów.
Ale tego ifa nie możesz wyekspediować w inne miejsce. To znaczy właśnie
w formie lambdy możesz, więc musisz powiedzieć jaki ma bagaż ze sobą zabrać.
[] - kompilator zapewni, że nie weźmie lokalnego kontekstu
[=] - skopiuje użyte zmienne
[&] - weźmie przez referencję
W ten sposób problem:
utwórz funktory, które "wiedzą" w której iteracji je wywołano i
jednocześnie współdzielą kontekst można zapisać jako
{
zmiene współdzielone;
for(int i=0;i<max_it;i++){
...
[&,iteration](){...};
...
}
wywoływanie lambd
>
>>> O tym pisa�em, �e programista *musi* przy definicji
>>> ustali�, do czego funkcja ma dost�p.
>> Zarzucasz, �e je�yk daje za du�e mo�liwo�ci programi�cie zamiast
>> ograniczy� si� do jedynej s�usznej wersji? No bez jaj...
>
> Sorry, ale to klepanie 3 znaków bez sensu. :)
No nie bez sensu. Dzięki tym trzem znakom to programista a nie twórcy
języka decydują jak się dana lambda zachowa.
W javie masz na przykład możliwość przekazania tylko zmiennej final,
więc żeby np przekazać do "lambdy" [1] stringa, który może zostać
zmodyfikowany pomiędzy utworzeniem obiektu a jego użyciem musisz tego
stringa zapakować w klasę - tam to dopiero jest pisania (albo
programiści, którym się nie chce robić dodatkowej klasy robią numery
pokroju:
list<String> l1 = new ArrayList<String>();
l1.add("some string");
final list<String> l2 = l1;
new clas ...
l2.get(0);
...
l2.set(0,"other string");
a to dopiero zaciemnia zapis.
)
[1] Czyli klasy/implementacji interface inline.
>
>>> BTW funkcje anonimowe s� og�lnie przereklamowane.
>> Uwa�am, �e s� wygodne:
>> [...]
>
> Nie twierdzę, że niewygodne, jednak sama idea mnie nie
> porywa, nawet w ukochanym pythonie nie używam dla onlinerów.
>
> BTW jestem ciekaw, jak wygląda debuggowanie takich
> anonimowych cudaków.
Na gcc generuje symbole postaci:
_ZNSt8functionIFivEEC2IZ3foovEUlvE_EET_NSt9enable_if
IXntsrSt11is_integralIS4_E5valueENS1_8_UselessEE4typ
eE
--
Pozdrawiam
Michoo
-
200. Data: 2012-06-15 00:50:48
Temat: Re: Czym jest programowanie?
Od: Michoo <m...@v...pl>
On 14.06.2012 21:51, AK wrote:
> Użytkownik "Michoo" <m...@v...pl> napisał:
>
>> Uważam, że są wygodne:
>> 1. jak masz powtarzające się 3-4 linijki istotne tylko w obrębie
>> jakiegoś bloku to robienie z tego metody jest zaśmiecaniem klasy.
>> Funkcja anonimowa to rozwiązuje
>
> Tak to jest gdy ktos widzi tylko krzyzyki :(.
Krzyżyki to widzisz ciągle ty. I nie wiedzieć czemu Cię one strasznie
wkurzają.
> Procedurye lokalne byly dostepne juz w ojcu j.prog czyli Algolu
> (ze juz o Pascalu nie wspomne).
I w C też. A w c++ nie było i wielu uważało to za poważny brak. Teraz są.
> Bez zadnych udziwnien skladni i
Czemu udziwnień? Trzeba było jakoś wkomponować zupełnie nową funkcję w
istniejący język. {} <> i () było w kontekście funkcji już zajęte, to
użyto [].
> idiotycznych nazw w rodzaju lambda.
Idiotycznych nazw powiadasz... Od "dinozaura" mówiącego o algolu bym
oczekiwał znajomości tej nazwy... Hint: "rachunek lambda".
--
Pozdrawiam
Michoo