Article View: pl.comp.programming
Article #215810Re: "Najbardziej imponujący kod, jaki widziałem"
From: godek.maciek
Date: Wed, 07 Aug 2019 09:10
Date: Wed, 07 Aug 2019 09:10
33 lines
4386 bytes
4386 bytes
W dniu środa, 7 sierpnia 2019 10:09:10 UTC+2 użytkownik Maciej Sobczak napisał:
> > Czyli idomatyczny zapis zawierający lambdę i mapowanie, np.:
> >
> > #^2& /@ {1,2,3,4}
> >
> > jest równoważny:
> >
> > Map[Function[x, x^2], {1,2,3,4}]
>
> Przepraszam, to jeszcze nie pokazuje istoty zagadnienia. Można jeszcze bardziej purystycznie (prościej?):
>
> Map[Function[x, Power[x,2]], List[1,2,3,4]]
>
> Czy ta wersja jest czytelniejsza? To zależy, kto czyta.
To jest problem z pojęciem czytelności, że jest niedookreślone.
Ale ta wersja korzysta z mniejszej ilości reguł, które "czysty umysł" potencjalnego czytelnika musi sobie przyswoić, żeby móc ją zrozumieć.
I to akurat nie zależy od tego, kto czyta.
(No, chyba że ktoś by twierdził, że ludzie od razu się rodzą ze zdolnością do parsowania zapisu #^2& jako funkcji anonimowej. Ale np. moje osobiste doświadczenie falsyfikuje owo twierdzenie)
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}]
> Na pewno dla automatu jest najlepsza (i wewnętrznie tak właśnie widać wszystkie wyrażenia, więc metaprogramowanie i przetwarzanie symboliczne odbywa się na takim poziomie), ale człowiek potrafi korzystać ze skrótów.
Automat też potrafi korzystać ze skrótów. Automatowi naprawdę jest wszystko jedno. Automat zrobi wszystko, do czego go zaprogramujesz.
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.
Moim zdaniem nie. Zdaniem Wolframa (i Twoim chyba także) najwidoczniej tak.
Piszesz powyżej, że "interpunkcja w Wolframie nie jest bardziej skomplikowana, niż w C++", ale ze znanych mi języków C++ ma niewątpliwie najbardziej skomplikowaną składnię (na tyle skomplikowaną, że sami jego twórcy sobie z nim nie radzą)
Technical Details
Message-ID:
<0468ff6e-bb49-412f-8dd1-3773a7a4283c@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!news.albasani.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!b26no8425685qtq.0!news-out.google.com!y1ni78qtn.0!nntp.google.com!b26no8425680qtq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<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> <ae20996a-1fd5-44dc-a39e-e627c633cc06@googlegroups.com> <e8792740-b3b1-48c6-917f-1dfb1fe8bab1@googlegroups.com> <c4e3147c-61af-4b8b-86f2-9e367e44b228@googlegroups.com> <82173aaf-ab06-498e-babc-9eb734bba184@googlegroups.com> <6dfc0a33-10bc-4915-836a-4bf4e57cd88f@googlegroups.com> <c093e8b7-c3c6-40c6-bc96-026e7e8f831c@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:a05:620a:1187:: with SMTP id b7mr7039784qkk.218.1565169046291; Wed, 07 Aug 2019 02:10:46 -0700 (PDT) X-Received: by 2002:aed:3fb0:: with SMTP id s45mr7159489qth.136.1565169046171; Wed, 07 Aug 2019 02:10:46 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!news.albasani.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!b26no8425685qtq.0!news-out.google.com!y1ni78qtn.0!nntp.google.com!b26no8425680qtq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Wed, 7 Aug 2019 02:10:45 -0700 (PDT) In-Reply-To: <c093e8b7-c3c6-40c6-bc96-026e7e8f831c@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> <ae20996a-1fd5-44dc-a39e-e627c633cc06@googlegroups.com> <e8792740-b3b1-48c6-917f-1dfb1fe8bab1@googlegroups.com> <c4e3147c-61af-4b8b-86f2-9e367e44b228@googlegroups.com> <82173aaf-ab06-498e-babc-9eb734bba184@googlegroups.com> <6dfc0a33-10bc-4915-836a-4bf4e57cd88f@googlegroups.com> <c093e8b7-c3c6-40c6-bc96-026e7e8f831c@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <0468ff6e-bb49-412f-8dd1-3773a7a4283c@googlegroups.com> Subject: Re: "Najbardziej imponujący kod, jaki widziałem" From: godek.maciek@gmail.com Injection-Date: Wed, 07 Aug 2019 09:10:46 +0000 X-Received-Bytes: 4626 X-Received-Body-CRC: 1435283488 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit