eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming"Najbardziej imponujący kod, jaki widziałem" › Re: "Najbardziej imponujący kod, jaki widziałem"
  • Data: 2019-08-07 16:43:35
    Temat: Re: "Najbardziej imponujący kod, jaki widziałem"
    Od: g...@g...com szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu środa, 7 sierpnia 2019 14:02:30 UTC+2 użytkownik Maciej Sobczak napisał:
    > > > Map[Function[x, Power[x,2]], List[1,2,3,4]]
    > >
    > > Ale ta wersja korzysta z mniejszej ilości reguł, które "czysty umysł"
    potencjalnego czytelnika musi sobie przyswoić, żeby móc ją zrozumieć.
    >
    > Bez przesady. W odróżnieniu od komputerów, człowiek nie musi "zarządzać" regułami,
    które zna. W szczególności znaczkologia, którą zna nawet ze szkoły podstawowej jest
    znacznie bardziej skomplikowana - dlatego dla większości ludzi zapis x^2 jest od razu
    czytelny, podczas gdy Power[x,2] budzi podejrzenia o jakiś podstęp

    Całkowicie się nie zgadzam.
    Nigdy nie miałem w szkole wprowadzanego zapisu x^2.
    W języku C ^ oznacza operację xor.
    W Pythonie (i zdaje się że FORTRANie też) do potęgowania używa się operatora **.
    Użycie symbolu ^ do wyrażenia potęgowania jest może uznane przez garstkę osób
    piszących w raczej niszowych językach.

    > pomimo tego, że "korzysta z mniejszej ilości reguł". Podobnie jest z nawiasami, czy
    w ogóle z operatorami.

    No właśnie. Ile godzin spędziliśmy w szkole, przyzwyczajając się do tej notacji?

    > Dlatego też to:
    >
    > a*x^2 + b*x + c
    >
    > jest czytelniejsze, niż to:
    >
    > Plus[c, Times[b, x], Times[a, Power[x, 2]]]

    Tzn. chyba chciałeś powiedzieć, że Tobie wydaje się czytelniejsze, a nie "jest
    czytelniejsze", bo to ostatnie określenie nawet nie do końca wiadomo, co znaczy.


    > W pewnej optymalnej ilości skróty są więc czytelniejsze i naturalniejsze.

    Może raczej "w pewnych bardzo szczególnych okolicznościach".
    W innych np. [a, b, c] będzie lepszą reprezentacją wielomianu, który powyżej
    zapisałeś.

    Zresztą notacja matematyczna ma to do siebie, że jest zoptymalizowana względem dość
    specyficznego celu, mianowicie łatwości manipulacji formułami na papierze albo
    tablicy. Łatwiej jest zapisać "x", bo to tylko dwa ruchy ręką, niż, dajmy na to,
    "ilość" (czy cokolwiek chcemy wyrazić przy pomocy tej liczby)

    > > Być może użycie "list comprehensions" byłoby dla różnych osób czytelniejsze, tzn.
    coś jak
    > >
    > > [x^2 | x <- {1,2,3,4}]
    >
    > Żaden postęp w stosunku do zwykłego mapowania. To jest nadmiarowa notacja. Jeśli
    dla kogoś czytelna, fajnie, ale posługując się Twoim własnym argumentem, wymaga
    znajomości większej liczby reguł. I ma bardzo ograniczone zastosowania.

    Tak samo jak /@ jest nadmiarową notacją.
    List comprehensions mają jednak pewną przewagę nad map. Przy pomocy map nie napiszesz
    czegoś takiego:

    [(x, y, z) | x <- [1 .. 100], y <- [1 .. 100], z <- [1 .. 100], x^2+y^2==z^2]


    > > Automat też potrafi korzystać ze skrótów. Automatowi naprawdę jest wszystko
    jedno. Automat zrobi wszystko, do czego go zaprogramujesz.
    >
    > Ale właśnie w przypadku automatu ja chcę, żeby był jak najprostszy. Bo wtedy spędze
    mniej czasu na jego programowaniu.

    A w przypadku człowieka dlaczego nie chcesz, żeby był jak najprostszy?

    > > Moje pytanie jest takie, czy ta pierwsza wersja rzeczywiście ma jakąś znaczącą
    przewagę nad tą ostatnią - na tyle znaczącą, żeby uzasadniała komplikowanie reguł
    dotyczących notacji.
    >
    > Tak. Jest prostsza dla tych, co znają znaczki. Dokładnie tak samo, jak z
    wielomianem kwadratowym ze szkoły z powyższego przykładu.

    Zrobiłem ankietę na Twitterze. Jak do tej pory zagłosowały 32 osoby.
    Wygląda na to, że spośród nich zgadza się z Tobą dokładnie 0 osób.

    https://twitter.com/PaniczGodek/status/1159029909672
    603648

    > > Moim zdaniem nie. Zdaniem Wolframa (i Twoim chyba także) najwidoczniej tak.
    >
    > Błąd. Ja korzystam z *obu* wersji. Zależnie od tego, która jest w danym kontekście
    bardziej efektywna.
    > Znaczy - w każdym kontekście moja efektywność może być optymalna. :-)

    Cały czas nie znam kontekstu, w którym ta druga notacja z haszami i małpami byłaby
    efektywniejsza.

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: