-
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ć?
Następne wpisy z tego wątku
- 04.08.19 22:57 Maciej Sobczak
- 05.08.19 12:44 g...@g...com
- 05.08.19 14:35 Roman Tyczka
- 05.08.19 14:58 g...@g...com
- 05.08.19 22:29 Maciej Sobczak
- 06.08.19 10:55 Maciej Sobczak
- 06.08.19 15:31 Borneq
- 06.08.19 15:45 g...@g...com
- 06.08.19 16:32 Borneq
- 06.08.19 16:39 g...@g...com
- 06.08.19 16:57 Borneq
- 06.08.19 17:01 Borneq
- 06.08.19 17:20 g...@g...com
- 06.08.19 22:57 g...@g...com
- 07.08.19 09:39 Maciej Sobczak
Najnowsze wątki z tej grupy
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- 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
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=