Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #30737
| From | Roman Tyczka <noemail@because.no> |
|---|---|
| Newsgroups | pl.comp.programming |
| Subject | Re: Optymalizacja struktur danych dla programów funkcyjnych |
| Date | 2017-10-04 20:02 +0200 |
| Organization | ATMAN - ATM S.A. |
| Message-ID | <w1nv54d3e363$.dlg@tyczka.com> (permalink) |
| References | (5 earlier) <b28b624e-6549-4b9c-9c5e-ea5e5a42cd27@googlegroups.com> <15f31349-863c-46a4-98f5-35501f1ea797@googlegroups.com> <4a8e7499-d2f2-4633-a873-6b31b53ba744@googlegroups.com> <58a53855-29ed-4086-8489-a4ce12e5ebc0@googlegroups.com> <bcc6d122-9147-4596-9b79-29a63e2c1db2@googlegroups.com> |
On Wed, 4 Oct 2017 09:36:14 -0700 (PDT), M.M. wrote: > On Wednesday, October 4, 2017 at 8:15:08 AM UTC+2, godek....@gmail.com wrote: >> W dniu środa, 4 października 2017 00:21:38 UTC+2 użytkownik Maciej Sobczak napisał: >>> > Nie. Na przykład unixowe polecenia takie jak mkdir czy rm nie są czysto >>> > funkcyjne, bo ich istotą jest wykonanie pewnego skutku ubocznego -- zmiana >>> > pewnego stanu. >>> >>> Dokładnie to samo można powiedzieć o każdym programie, który cokolwiek produkuje na swoim wyjściu - bo operacje I/O (czyli również pisanie na stdout) to skutki uboczne. Nawet dokładnie tak się to nazywa w standardzie np. języka C. >>> >>> Czyli przeginając argument w drugą stronę, można powiedzieć, że wszystkie interesujące programy produkują jakieś skutki uboczne (w przeciwnym razie nie ma po co ich uruchamiać), więc zgodnie z Twoją definicją nie są "czysto funkcyjne". Czy znowu to pojęcie nie jest użyteczne. >> >> Otóż nie. Ale widzę, że po raz kolejny zamiast spróbować zrozumieć >> pojęcie, starasz się je strolować i wmówić, że nie jest użyteczne. >> >> Można sobie pomyśleć program, który oblicza wartość jakiegoś programu >> czysto funkcyjnego i wyświetla ją na ekran. (Na przykład takie coś >> robi interpreter). Interpreter nie jest czysto funkcyjny, a obliczany >> przez niego program jest. >> >>> > bazuje na operacji niedeterministycznej, >>> > ponieważ losuje pewien obiekt. >>> >>> "Losowanie" generatorem liczb pseudolosowych jest deterministyczne, tak jak każda inna sekwencja operacji arytmetycznych. A odwoływanie się do zewnętrznych źródeł szumu jest operacją wejścia, czyli znowu mówimy o deterministycznym programie, który przetwarza wejście na wyjście - i który dla takiego samego szumu da zawsze te same wyniki. Czyli który dla takiego samego wejścia da takie same wyjście. Sorry. >> >> Widzę, że nie rozumiesz. >> To, czy liczba jest pseudolosowa, czy nie jest, czy pochodzi z wejścia, >> czy z kosmosu, nie ma znaczenia dla *ISTOTY* danego programu. Na tym >> właśnie polega abstrakcja niedeterminizmu. >> >>> > Zatem nie jest ze swojej istoty czysto >>> > funkcyjny. >>> >>> I dalej nie wiemy, co to niby miałoby oznaczać. >> >> No, jeżeli usilnie staramy się nie zrozumieć, co to oznacza, >> to nie wiemy. >> >>> > Określenie "czysto funkcyjny" jest bardzo praktyczne, ponieważ >>> > wyznacza środki analizy potrzebne do tego, żeby analizować dany >>> > system. >>> >>> Łomatko. >> >> Może sobie poczytaj https://mitpress.mit.edu/sicp/full-text/sicp/book/node10.html >> >>> > Systemy czysto funkcyjne można analizować w terminach >>> > podstawień wartości wyrażeń za wyrażenia. >>> >>> Czyli wszystkie programy można tak analizować. Każdy program jest deterministyczną funkcją Input -> Output. >>> Dlatego to pojęcie nie jest użyteczne. >> >> Dałem kilka kontrprzykładów. Systemy kolejkowe czasu rzeczywistego >> nie są deterministyczną funkcją input->output. Być może mają komponenty, >> które można w taki sposób analizować, ale ich istotą jest działanie >> w czasie rzeczywistym, i reagowanie na zdarzenia w zależności od >> jakiegoś ich wewnętrznego stanu. >> >> Natomiast programy w rodzaju kompilatorów, konwerterów LaTeXa, >> sedów, są w istocie czysto funkcyjne w takim sensie, że dla określonego >> wejścia dają określone wyjście i kropka. Pojęcie "wewnętrznego >> stanu" nie należy do ich opisu. >> >>> > Bo rzeczywiście, wiele kompilatorów działa tak, że wykonuje pewien >>> > efekt uboczny, np. sprawia, że na dysku pojawiają się jakieś pliki >>> > (i czasem też znikają). Ale to nie należy do jego istoty, tylko >>> > jest szczegółem implementacyjnym >>> >>> W ten sposób można opisać każdy program - tzn. że owszem, robi efekty uboczne przy okazji operacji I/O (które są potrzebne, że przeczytać wejście i wyprodukować coś na wyjściu), ale one nie należą do jego istoty, tylko są szczegółem implementacyjnym, więc... >> >> Nie, nie można. >> Podałem podczas tej rozmowy kilka przykładów. >> Istnieją programy, których istotą jest interakcja (np. gry komputerowe, >> przeglądarki internetowe), takie, których istotą jest wykonanie >> skutku ubocznego (np. mkdir albo rm), takie, które są w istocie >> niedeterministyczne (jak wspomniany framework do algorytmów genetycznych). >> A oprócz nich są programy czysto funkcyjne, które po prostu wyznaczają >> przekształcenia jakichs wejść w jakieś wyjścia. >> Dla mnie taki podział jest użyteczny. Jeżeli dla Ciebie nie jest, >> to Twoja sprawa. > > Pytanie, czy dla ogółu jest użyteczny? Póki co, ja to nawet nie widzę > wyraźnej granicy podziałów ani korzyści z dzielenia - ale to pewnie > coś ze mną nie tak. Z tego co zrozumiałem to taki program wykonuje sekwencyjnie* rozkazy wg zadanego schematu/algorytmu, jedzie od A do Z i się kończy. Tylko z tego nic nie wynika poza samym tym faktem. Ale może taki podział ma gdzieś zastosowanie praktyczne. *sekwencyjnie w sensie kolejnych kroków, które oczywiście może rozdzielać na np. wątki -- pozdrawiam Roman Tyczka
Back to pl.comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-09-21 03:10 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU <NOSPAMtestowanije@go2.pl> - 2017-09-21 19:44 +0200
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-09-21 11:49 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Roman Tyczka <noemail@because.no> - 2017-09-21 22:35 +0200
Re: Optymalizacja struktur danych dla programów funkcyjnych "M.M." <mmarszik@gmail.com> - 2017-09-21 13:41 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU <NOSPAMtestowanije@go2.pl> - 2017-09-28 18:08 +0200
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-09-28 10:22 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU <NOSPAMtestowanije@go2.pl> - 2017-09-28 19:54 +0200
Re: Optymalizacja struktur danych dla programów funkcyjnych fir <profesor.fir@gmail.com> - 2017-09-28 12:14 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych fir <profesor.fir@gmail.com> - 2017-09-30 04:57 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-09-30 07:58 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU <NOSPAMtestowanije@go2.pl> - 2017-09-30 17:14 +0200
Re: Optymalizacja struktur danych dla programów funkcyjnych Szyk Cech <szyk100@o2.pl> - 2017-09-30 20:13 +0200
Re: Optymalizacja struktur danych dla programów funkcyjnych wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU <NOSPAMtestowanije@go2.pl> - 2017-09-30 20:18 +0200
Re: Optymalizacja struktur danych dla programów funkcyjnych Maciej Sobczak <see.my.homepage@gmail.com> - 2017-10-02 05:20 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-02 11:00 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Roman Tyczka <noemail@because.no> - 2017-10-03 11:35 +0200
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-03 10:52 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Maciej Sobczak <see.my.homepage@gmail.com> - 2017-10-03 09:56 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-03 11:01 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Maciej Sobczak <see.my.homepage@gmail.com> - 2017-10-03 15:21 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-03 23:15 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych "M.M." <mmarszik@gmail.com> - 2017-10-04 09:36 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Roman Tyczka <noemail@because.no> - 2017-10-04 20:02 +0200
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-04 11:58 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Maciej Sobczak <see.my.homepage@gmail.com> - 2017-10-04 16:37 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-04 23:28 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Maciej Sobczak <see.my.homepage@gmail.com> - 2017-10-05 04:48 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-05 09:58 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Maciej Sobczak <see.my.homepage@gmail.com> - 2017-10-06 05:01 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-06 10:59 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Maciej Sobczak <see.my.homepage@gmail.com> - 2017-10-07 14:22 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-08 01:47 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Maciej Sobczak <see.my.homepage@gmail.com> - 2017-10-08 14:30 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-08 22:58 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych Maciej Sobczak <see.my.homepage@gmail.com> - 2017-10-09 05:25 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych fir <profesor.fir@gmail.com> - 2017-10-09 09:12 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych godek.maciek@gmail.com - 2017-10-09 10:47 -0700
Re: Optymalizacja struktur danych dla programów funkcyjnych "M.M." <mmarszik@gmail.com> - 2017-09-30 12:54 -0700
csiph-web