🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #215802

Re: "Najbardziej imponujący kod, jaki widziałem"

#215802
From: godek.maciek
Date: Mon, 05 Aug 2019 10:44
60 lines
7248 bytes
W dniu niedziela, 4 sierpnia 2019 22:57:09 UTC+2 użytkownik Maciej Sobczak napisał:
> > Nawet zerknąłem z ciekawości.
> > Tak konkretniej to zerknąłem tutaj:
> > https://rosettacode.org/wiki/Levenshtein_distance
> [...]
> > 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.
> 
> Niekoniecznie. Bo jeśli reguły zabawy były takie, żeby nie używać istniejących ficzerów, tylko biczować się na jak najniższym poziomie, to akurat pokazana przez Ciebie wersja w Haskellu też tego nie spełnia. foldl, scanl, zip3, minimum, print, itd. - naprawdę, autorzy nie zrozumieli reguł, powinni to wszystko napisać od zera.

O ile mogę się zgodzić, że problem demarkacji nie jest w tym przypadku łatwy, o tyle nie zgodzę się z radykalnym wnioskiem.
Rozwiązanie Haskellowe, chociaż korzysta z funkcji wbudowanych, daje jednak możliwość zozumienia tego, co się dzieje pod spodem. Rozwiązanie w Mathematice takiej możliwości nie daje.
Prosta sprawa - zmodyfikuj rozwiązanie w Mathematice tak, żeby koszt zamiany elementu wynosił 2 a nie 1.

> Zaletą Wolframa jest właśnie te 5000+ funkcji, które od ręki coś robią. A ponieważ Wolfram jest LISPowaty, to nie da się wyraźnie oddzielić funkcji "podstawowych" od "bibliotecznych", bo wszystkie mają takie same prawa i nie ma żadnej niezbędnej.

To też jest interesujące: czy algorytm Levenshteina napisany w Mathematice będzie działał równie szybko jak ten wbudowany?
Czy może ten wbudowany został zaimplementowany w C?

> > Przy takiej interpretacji rzeczywiście trudno się dziwić, że w Mathematice wychodzą najkrótsze implementacje.
> 
> Problem w tym, że przy innej interpretacji mogłoby się okazać, że w wielu językach w ogóle nie dałoby się wielu rzeczy napisać, bo większość języków bez swojej biblioteki standardowej nie potrafi zrobić nawet Hello World.
> Więc skoro reguły są takie, że bierzemy język *razem* z jego biblioteką standardową, to niestety w Wolframie ten konkretny przykładowy problem rozwiązuje się jednym wywołaniem odpowiedniej funkcji.

W każdym razie zagadka "najkrótszego kodu" w Mathematice rozwiązana.
Każdy może wyciągnąć swoje wnioski.

> To trochę jakbyś chciał wymyślić takie reguły gry w piłkę, żeby Lewandowski nie mógł strzelić gola i żebyś wtedy mógł z nim wygrać. Sorry, ale przy normalnych, uczciwych regułach, Lewandowski wygrywa.
> 
> (nie żebym się znał na piłce i kto tam teraz rulez, ale mam nadzieję, że analogia jest zrozumiała)

Bardziej taka analogia, że wystawiamy w wyścigu biegaczy i motocyklistów.
Raczej nikogo nie zdziwi, że motocykliści dojadą szybciej na metę. Ale raczej nie wnioskowałbym stąd, że kondycja motocyklistów jest lepsza.

> > > A gdybym jednak chciał dodać pustą listę do wyniku?
> > 
> > To zamiast '() napisałbyś '(())
> 
> Ale czad. Prawie zaczynam pamiętać te wszystkie specjalne szczególiki. Bo sorry, ale nadal tutaj jest specjalne traktowanie listy.

Tutaj nie ma żadnego specjalnego traktowania listy.
Funkcja "append-map" wymaga, żeby przekazana do niej funkcja zwracała listę. Funkcja tworzy listę wynikową sklejając ze sobą wyniki list cząstkowych, powstałych przez aplikację przekazanej funkcji do każdego elementu przekazanej listy.
Nie ma tu żadnych specjalnych szczególików.

> > (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)
> 
> Bardzo nieudolnie ukrywasz swoje poczucie wyższości nad resztą świata.

Zauważyłem, że niejednokrotnie w naszych dyskusjach zdarza Ci się wyjechać z jakimś dziwnym "ad personam" w moim kierunku. A to że próbuję szpanować, a to że jestem arogancki, a to że mam poczucie wyższości nad resztą świata.

Nie wiem, skąd się to u Ciebie bierze, ani czemu to ma służyć. Jeżeli masz jakieś pytania na temat mojej osobowości, to lepiej zapytaj, zamiast spekulować.

W tym kontekście, jeżeli miałbym mówić o "wyższości czegoś nad czymś", to bym powiedział, że wkład Johna McCarthy'ego w rozwój informatyki był moim zdaniem większy od wkładu Stephena Wolframa (który być może lepiej się potrafił sprzedać). Ale to tyle. Nie ma w tym przekonaniu absolutnie nic na mój temat.

> Otóż Wolfram sam twierdzi, że:

Że Wolfram twierdzi, to mnie nie zaskakuje. Ale mówiłem o "znaczącym odsetku użytkowników", a nie o "odsetku znaczących użytkowników"

> Przypuszczam, że takie doświadczenia dotyczą również jakiejś części użytkowników. Ile jest takich przypadków - nie wiem, ale biorąc pod uwagę, że w środowisku uczelnianym LISP jest silnie reprezentowany i wiele narzędzi związanych z matematyką było swego czasu napisanych w LISPie, to spodziewam się, że świadomość LISPa wśród użytkowników Wolframa jest co najmniej zauważalna.

No właśnie. Ty się spodziewasz jednego, ja się spodziewam drugiego, i pewnie żaden z nas nigdy się na ten temat nie dowie niczego.
Technical Details
Message-ID: <ae20996a-1fd5-44dc-a39e-e627c633cc06@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.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.giganews.com!nntp.giganews.com!b26no3079432qtq.0!news-out.google.com!a5ni1235qtd.0!nntp.google.com!b26no3079429qtq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <edc55064-0038-4844-a994-4cddd7d77d76@googlegroups.com> <11e4b1d7-2d97-48ac-8a3d-9172df46bf0b@googlegroups.com> <c10e995b-108e-4770-840c-f27c95c0d36c@googlegroups.com> <004de5cc-bf54-4740-92d9-d7f5892c68f1@googlegroups.com> <ba268c8f-c446-4d4c-93e9-b640ebd0f75e@googlegroups.com> <d570836b-f9da-4359-b307-981afc6d4b40@googlegroups.com> <2f6d1e89-c868-49ad-bf88-81e0560f48c9@googlegroups.com> <cff169cc-d481-4ded-ba90-43d0f5ecc05e@googlegroups.com> <b9c338d3-c80c-4b42-99ff-da12417126b7@googlegroups.com> <10218256-a88b-4be5-9815-723d2b757225@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a05:6214:110c:: with SMTP id e12mr9057912qvs.126.1565001899817;        Mon, 05 Aug 2019 03:44:59 -0700 (PDT)
X-Received: by 2002:a0c:e001:: with SMTP id j1mr110251353qvk.110.1565001899653; Mon, 05 Aug 2019 03:44:59 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.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.giganews.com!nntp.giganews.com!b26no3079432qtq.0!news-out.google.com!a5ni1235qtd.0!nntp.google.com!b26no3079429qtq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Mon, 5 Aug 2019 03:44:59 -0700 (PDT)
In-Reply-To: <10218256-a88b-4be5-9815-723d2b757225@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.192.68.153; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 213.192.68.153
References: <edc55064-0038-4844-a994-4cddd7d77d76@googlegroups.com> <11e4b1d7-2d97-48ac-8a3d-9172df46bf0b@googlegroups.com> <c10e995b-108e-4770-840c-f27c95c0d36c@googlegroups.com> <004de5cc-bf54-4740-92d9-d7f5892c68f1@googlegroups.com> <ba268c8f-c446-4d4c-93e9-b640ebd0f75e@googlegroups.com> <d570836b-f9da-4359-b307-981afc6d4b40@googlegroups.com> <2f6d1e89-c868-49ad-bf88-81e0560f48c9@googlegroups.com> <cff169cc-d481-4ded-ba90-43d0f5ecc05e@googlegroups.com> <b9c338d3-c80c-4b42-99ff-da12417126b7@googlegroups.com> <10218256-a88b-4be5-9815-723d2b757225@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ae20996a-1fd5-44dc-a39e-e627c633cc06@googlegroups.com>
Subject: Re: "Najbardziej imponujący kod, jaki
 widziałem"
From: godek.maciek@gmail.com
Injection-Date: Mon, 05 Aug 2019 10:44:59 +0000
Lines: 125
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit