-
Data: 2019-01-04 13:29:59
Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
Od: g...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu piątek, 4 stycznia 2019 02:00:15 UTC+1 użytkownik AK napisał:
> On 2019-01-03 21:51, fir wrote:
> >
> > w c taki programik nie wyglada zbyt tragicznie
> >
> >
> > int PoliczSumeParuPoczatkowychLiczbPierwszych(int ilu)
> > {
> >
> > int dodano_pierwszych =0;
> > int suma = 0;
> >
> > for(int i=0;;i++)
> > {
> > if(jest_liczba_pierwsza(i))
> > {
> > suma+=i*i;
> > dodano_pierwszych++;
> > if(dodano_pierwszych==ilu) return suma;
> > }
> > }
> > }
> >
>
> Jakto nie? Koszmar po prostu.
Szkoda czasu na dyskutowanie o gustach.
> > to ze nie wydziela on etapow na podej pierwsze, podnies do kwadratu zsumuj wynika
raczej z tego ze
> > pisze sie to tak by dzialalo szybko.. jak ktos sie nie upiera by bylo tak szybko
moze podzielic
> > na te fazy
>
> Ciezki niereformowalny betonie (zakalo tej grupy):
Chyba nie ma potrzeby zwracania się do siebie w taki sposób.
Za coś takiego nie daję szacunku.
> Wbij sobie do twego asemblerowatego lba ze mozna i szybko i z
> eleganckim rozdzialem na etapy.
> Oczywiscie w porzdiejzych jezykach od tego syfu C/C++.
> W dodatku wcale nie funkcyjnych, bo to raczez nie stricte funkcyjnosc
> jezyka jest zrodlem sukcesu, ale cos co w C++ nie wystepuje, a zwie
> sie generateory/wyrazenia generatorowe.
> Idea znana od dziesiecioleci (ale nie Ayatollahom C/C++).
>
> W Pythonie wyglada ona np tak (pisane "z palca" o 15 min:):
Nawet w Pythonie została dodana dość późno.
> from itertools import count, islice
>
> N = 15000
>
> pierwsze = []
> def jest_pierwsza(liczba, pierwsze=pierwsze):
> czy_pierwsza = all(liczba % pierwsza for pierwsza in pierwsze)
> if czy_pierwsza: pierwsze.append(liczba)
> return czy_pierwsza
>
> pierwsze = (liczba for liczba in count(2) if jest_pierwsza(liczba))
> pierwszeN = (liczba for liczba in islice(pierwsze, N))
> kwadraty = (liczba**2 for liczba in pierwszeN)
> suma = sum(kwadraty)
>
> print(suma)
w Haskellu chyba zwięźlej:
sieve (first:rest) = first:(sieve [x | <- rest, x `mod` first /= 0])
primes = sieve [2 ..]
-- nie chcemy wypisać "primes", bo jest ich nieskończenie wiele,
-- dlatego weźmiemy pierwszych 7:
take 7 primes -- dostajemy [2,3,5,7,11,13,17]
-- zaś cały przykład to będzie:
foldr (+) 0 (map (^2) (take 7 primes))
-- albo jak ktoś nie lubi nawiasów
foldr (+) 0 $ map (^2) $ take 7 primes
> No to teraz czekam palancie az usyskasz cos chocby zblizonego
> w C (w C++ jest latwiej, ale bez zewnetrzych bibliotek
> "metaprogramowania" sie nei obejdze, a i ta bedzie to potworek
> w stosunku do w/w w Pythonie.
>
> PS: Od lat 90tych istnieje jezyk w ktorym w/w bedzie jeszcze
> prostrze/czytelniejsze (o ktorym oczywiscie tez nie masz pojecia,
> jak kazdy"zakochany" w bitach:) i ktory wcale nie jest funkcyjny,
> ale jak najbardziej (jak i Python) imperatywny (zwal jak zwal).
Jaki język masz na myśli?
Ogólnie określenia "język funkcyjny" czy "język imperatywny"
nie są zbyt użyteczne.
W Haskellu można programować imperatywnie. W C można programować
funkcyjnie. To nie język, ale to, w jaki sposób go używamy,
jest kluczowe.
(No może są wyjątki. Na przykład język szablonów C++ jest czysto funkcyjny,
a asembler x86 jest czysto imperatywny)
> Sam se napisz leniu i niedouku!
Nie wiem co ma wynikać z rzucania tego rodzaju określeniami.
Jak ktoś mówi, że chciałby coś zobaczyć, to pewnie adresuje
swoją wypowiedź do kogoś, kto mu to może pokazać.
W czym problem?
Następne wpisy z tego wątku
- 04.01.19 13:34 fir
- 04.01.19 13:47 fir
- 04.01.19 13:52 g...@g...com
- 04.01.19 14:01 fir
- 04.01.19 14:12 g...@g...com
- 04.01.19 14:15 AK
- 04.01.19 14:16 fir
- 04.01.19 14:26 fir
- 04.01.19 14:31 AK
- 04.01.19 14:33 fir
- 04.01.19 14:50 AK
- 04.01.19 14:54 fir
- 04.01.19 15:10 fir
- 04.01.19 15:42 g...@g...com
- 04.01.19 16:33 fir
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-06 Jeździ, skręca, hamuje
- 2025-01-06 Białystok => System Architect (Java background) <=
- 2025-01-06 Gliwice => Specjalista ds. public relations <=
- 2025-01-06 Białystok => Solution Architect (Java background) <=
- 2025-01-06 Zielona GĂłra => Konsultant WdroĹźeniowy Comarch XL/Optima (KsiÄgowoĹ
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 2025-01-06 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-06 Do IO i innych elektrooszolomow, tu macie prawdziwe smrody
- 2025-01-06 Białystok => Full Stack .Net Engineer <=
- 2025-01-06 Kraków => Business Development Manager - Network and Network Security
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg