-
X-Received: by 10.31.49.200 with SMTP id x191mr857888vkx.19.1507069297436; Tue, 03
Oct 2017 15:21:37 -0700 (PDT)
X-Received: by 10.31.49.200 with SMTP id x191mr857888vkx.19.1507069297436; Tue, 03
Oct 2017 15:21:37 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.
iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!6no2715
63qtw.1!news-out.google.com!p42ni2216qtp.0!nntp.google.com!d13no451456qta.0!pos
tnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Tue, 3 Oct 2017 15:21:37 -0700 (PDT)
In-Reply-To: <1...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.108.152.51;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 213.108.152.51
References: <c...@g...com>
<4...@g...com>
<b...@g...com>
<d...@g...com>
<f...@g...com>
<b...@g...com>
<1...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4...@g...com>
Subject: Re: Optymalizacja struktur danych dla programów funkcyjnych
From: Maciej Sobczak <s...@g...com>
Injection-Date: Tue, 03 Oct 2017 22:21:37 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 75
Xref: news-archive.icm.edu.pl pl.comp.programming:211555
[ ukryj nagłówki ]> 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.
> 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.
> Zatem nie jest ze swojej istoty czysto
> funkcyjny.
I dalej nie wiemy, co to niby miałoby oznaczać.
Podsumujmy co wiemy do tej pory:
- wszystkie programy deterministycznie przetwarzają wejście na wyjście i produkują
przy tej okazji skutki uboczne.
> Określenie "czysto funkcyjny" jest bardzo praktyczne, ponieważ
> wyznacza środki analizy potrzebne do tego, żeby analizować dany
> system.
Łomatko.
> 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.
> 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...
Więc znowu albo każdy program jest "czysto cośtam", albo każdy nie jest.
> > Poza tym, obowiązuje zasada "nie wiem o co chodzi, ale chętnie się wypowiem".
>
> A, to przepraszam :)
Proszę. :-)
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 04.10.17 08:15 g...@g...com
- 04.10.17 18:36 M.M.
- 04.10.17 20:02 Roman Tyczka
- 04.10.17 20:58 g...@g...com
- 05.10.17 01:37 Maciej Sobczak
- 05.10.17 08:28 g...@g...com
- 05.10.17 13:48 Maciej Sobczak
- 05.10.17 18:58 g...@g...com
- 06.10.17 14:01 Maciej Sobczak
- 06.10.17 19:59 g...@g...com
- 07.10.17 23:22 Maciej Sobczak
- 08.10.17 10:47 g...@g...com
- 08.10.17 23:30 Maciej Sobczak
- 09.10.17 07:58 g...@g...com
- 09.10.17 14:25 Maciej Sobczak
Najnowsze wątki z tej grupy
- 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
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
Najnowsze wątki
- 2025-05-12 Gliwice => Business Development Manager - Network and Network Security
- 2025-05-12 Warszawa => Junior Rekruter <=
- 2025-05-12 Białystok => Programista Mainframe (z/OS, Assembler) <=
- 2025-05-12 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-05-12 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-05-12 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-05-12 Warszawa => Spedytor Międzynarodowy <=
- 2025-05-12 kolizja na chodniku nie ma odszkodowania
- 2025-05-12 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-05-12 presja na aplikacje i blik
- 2025-05-12 czy znacie bardziej popierdolone sieci niż polskie?
- 2025-05-12 czy znacie bardziej popierdolone sieci niż polskie?
- 2025-05-11 Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- 2025-05-11 Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- 2025-05-11 obca rejestracja budzi agresję