-
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
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-05 Shrek, wzrośnie cena prądu :-)
- 2025-07-05 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Konsultant wewnętrzny <=
- 2025-07-06 Płacić za wodę ze studni
- 2025-07-06 Kolejny inżynier...
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-04 od kiedy można obrażać Plastusia i do kiedy Batyra?
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-03 Trybik
- 2025-07-04 Renault Symbioz
- 2025-07-04 Architektura IIIRP: Wyjątkowa, a prymitywniejsza niż stodoła pod zaborami
- 2025-07-04 Warszawa => International Freight Forwarder <=
- 2025-07-04 Wrocław => SAP ABAP Developer <=
- 2025-07-04 Warszawa => Mid/Senior IT Recruiter <=