eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming"Najbardziej imponujący kod, jaki widziałem" › Re: "Najbardziej imponujący kod, jaki widziałem"
  • X-Received: by 2002:a05:620a:15cd:: with SMTP id o13mr94768361qkm.273.1564871863339;
    Sat, 03 Aug 2019 15:37:43 -0700 (PDT)
    X-Received: by 2002:a05:620a:15cd:: with SMTP id o13mr94768361qkm.273.1564871863339;
    Sat, 03 Aug 2019 15:37:43 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.us.feeder.erj
    e.net!4.us.feeder.erje.net!feeder.erje.net!weretis.net!feeder6.news.weretis.net
    !feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.g
    iganews.com!nntp.giganews.com!b26no10114904qtq.0!news-out.google.com!a5ni1061qt
    d.0!nntp.google.com!b26no10114898qtq.0!postnews.google.com!glegroupsg2000goo.go
    oglegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sat, 3 Aug 2019 15:37:43 -0700 (PDT)
    In-Reply-To: <c...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=83.25.232.40;
    posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
    NNTP-Posting-Host: 83.25.232.40
    References: <e...@g...com>
    <1...@g...com>
    <c...@g...com>
    <0...@g...com>
    <b...@g...com>
    <d...@g...com>
    <2...@g...com>
    <c...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <b...@g...com>
    Subject: Re: "Najbardziej imponujący kod, jaki widziałem"
    From: g...@g...com
    Injection-Date: Sat, 03 Aug 2019 22:37:43 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Lines: 131
    Xref: news-archive.icm.edu.pl pl.comp.programming:213748
    [ ukryj nagłówki ]

    W dniu sobota, 3 sierpnia 2019 21:51:13 UTC+2 użytkownik Maciej Sobczak napisał:
    > > Czasem w radiu słyszę reklamy, że producent leku przeprowadził niezależne
    badania,
    >
    > Ale ten producent wziął dane z niezależnego serwisu (Rosetta Code). Ty też możesz
    te dane stamtąd wziąć.

    Nawet zerknąłem z ciekawości.
    Tak konkretniej to zerknąłem tutaj:
    https://rosettacode.org/wiki/Levenshtein_distance

    Rozwiązanie w Mathematice wyglądało tak:

    EditDistance["kitten","sitting"]
    ->3
    EditDistance["rosettacode","raisethysword"]
    ->8

    Dla porównania rozwiązanie w Haskellu:

    levenshtein :: Eq a => [a] -> [a] -> Int
    levenshtein s1 s2 = last $ foldl transform [0 .. length s1] s2
    where
    transform ns@(n:ns1) c = scanl calc (n + 1) $ zip3 s1 ns ns1
    where
    calc z (c1, x, y) = minimum [y + 1, z + 1, x + fromEnum (c1 /= c)]

    main :: IO ()
    main = print (levenshtein "kitten" "sitting")


    Czyli autorzy "rozwiązania" w Mathematice nie dostarczyli implementacji odległości
    Levenshteina, tylko skorzystali z wbudowanej. Wygląda zatem na to, że nawet nie
    zrozumieli reguł zabawy.
    Przy takiej interpretacji rzeczywiście trudno się dziwić, że w Mathematice wychodzą
    najkrótsze implementacje.

    > > - wiedzy o osobliwym zachowaniu wartości "Nothing"
    >
    > Bo właśnie to chciałem zaprezentować. Da się też bez tej wiedzy, czyli gorzej. Da
    się nawet tak samo źle, jak w Twoim przykładzie. Wolfram to bardzo uniwersalny język,
    może nawet udawać gorsze języki. :-)
    >
    > > Łatwo jest zdefiniować "only" przy pomocy "append-map" (czy flatMap, czy
    concatMap, jak zwał tak zwał)
    > >
    > > (define (only satisfying? elements)
    > > (append-map (lambda (element)
    > > (if (satisfying? element)
    > > `(,element)
    > > '()))
    > > elements))
    > >
    > > Wygląda prawie tak samo, jak Twoja, tylko nie trzeba wymyślać "specjalnych
    elementów" o "magicznych właściwościach" i "niejasnym statusie ontycznym".
    >
    > No jak nie. Ja tam widzę pustą listę gdy warunek nie jest spełniony. Skąd mam
    wiedzieć, że pusta lista jest ignorowana przez append-map? Przecież mogła być też
    dodana do wyniku.
    > A gdybym jednak chciał dodać pustą listę do wyniku?

    To zamiast '() napisałbyś '(())

    > > Najwidoczniej dla mnie prostota jest ważniejsza od wygody (którą Ty tutaj
    nazywasz "użytecznością"), a dla Ciebie na odwrót.
    >
    > Zgodziłbym się, gdyby Twoje przykłady były proste. Ale nie są.

    Nie do końca wiem, które przykłady masz na myśli.

    > [...]
    > > Zaprawieni programiści Lispa nazywają ten proces "rytuałem przejścia".
    >
    > Rozumiem. Wspominałeś już to określenie, ale wcześniej nie zrozumiałem. Czyli
    "rytuał przejścia" to sytuacja, kiedy ktoś bez sukcesu próbuje usprawnić język i
    ostatecznie rezygnuje z tego, wracając do języka bez usprawnień.

    Raczej: próbuje usprawnić język, ale w międzyczasie odnajduje perspektywę, w której
    okazuje się, że pozorne usprawnienia wcale nic nie usprawniają. Że zmiana kształtu
    koła nie sprawia, że koło staje się lepszym kołem. Że tym, co było przeszkodą, nie
    były niedoróbki języka, tylko nawyki programisty.

    > A jest jakaś fajna nazwa na sytuację, kiedy ktoś bez sukcesu próbuje usprawnić
    język i ostatecznie rezygnuje z tego i zmienia język na lepszy?

    Zauważyłem, że często (w naszych różnych rozmowach, nie tylko teraz) posługujesz się
    takimi określeniami, jak "lepszy" czy "gorszy", tak jakby one same w sobie coś
    znaczyły.
    Być może ma sens mówienie o tym, że coś jest lepsze dla jakiegoś danego celu niż coś
    innego, albo że jest lepsze względem jakiegoś kryterium czy jakiejś miary, ale nie
    wydaje mi się, żeby można było w ogóle powiedzieć, że dany język jest w jakimś
    absolutnym sensie lepszy od jakiegoś innego języka.

    > Nie wiem - rytuał wyjścia? odejścia? rozejścia?
    > Musi być jakaś fajna nazwa.

    Może "sytuacja utknięcia"?
    Albo "nieprzejście rytuału przejścia"?

    > > Być może sytuacja z Mathematiką ma się nieco inaczej, bo ona ma już wokół siebie
    stosunkowo dużą społeczność.
    >
    > To pewnie ludzie po rytuale wyjścia z LISPa. :-D

    Nie wiem jacy to ludzie. Pytanie jest rzeczywiście ciekawe, ale mi brak narzędzi,
    żeby to ocenić. (Nie ukrywam jednak, że zdziwiłbym się, gdyby się okazało, że jakiś
    znaczący odsetek użytkowników Mathematiki miał wcześniej głębszy kontakt z Lispem)

    > W porównaniu do poprzednich postów, w których próbowałeś wykazać, że nikt z tego
    nie korzysta, zauważam pozytywną zmianę.

    Kiedy ja niby próbowałem coś takiego wykazać?

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: