eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
  • 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?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: