-
Data: 2017-10-06 19:59:42
Temat: Re: Optymalizacja struktur danych dla programów funkcyjnych
Od: g...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu piątek, 6 października 2017 14:01:22 UTC+2 użytkownik Maciej Sobczak napisał:
> > > Bez przesady. Nawet nie podałeś definicji, tylko przykład, z którym ja się nie
zgodziłem. To mi się nie kwalifikuje jako "ustaliliśmy".
> >
> > Pozwolę sobie wkleić:
>
> > Miałoby znaczyć tyle, że dla danego wejścia daje zawsze to samo wyjście.
> >
> > (koniec cytatu)
>
> I bez wklejania, powtórzę: każdy program tak ma.
Widzę, że masz wielką ochotę kręcić się w kółko.
Otóż nie każdy. Jeżeli chcesz jeszcze inną garść przykładów,
to na przykład programy na maszyny niedeterministyczne
tak nie mają.
Tutaj masz przykłady:
https://en.wikipedia.org/wiki/Nondeterministic_finit
e_automaton
https://en.wikipedia.org/wiki/Non-deterministic_Turi
ng_machine
> > > Ogólnie, oodwoływanie się do takich pojęć jak "istota czegoś" jest trochę...
nieinżynierskie.
> >
> > Owszem. Ale dlaczego miałoby to być problemem?
>
> Bo jest nieprecyzyjne i niedookreślone. A stąd prosta droga do nieporozumień.
"Nieinżynierskie" nie znaczy ani "nieprecyzyjne" ani "nieokreślone".
Pojęcie istoty też ma swój wpis na wikipedii:
https://en.wikipedia.org/wiki/Essence
> > Stwierdzenie, że kompilator jest w istocie programem czysto funkcyjnym
> > oznacza tyle, że kompilacja jest rodzajem transformacji (przekształcenia).
>
> Każde przetwarzanie czegokolwiek takie jest.
Nie każde. Istnieją przetwarzania niedeterministyczne, stochastyczne
itd.
> > Piszesz błędnie.
> >
> > Jeżeli mamy np. program
> >
> > int square(int x) {
> > return x*x;
> > }
> >
> > void main(int argc, char *argv[]) {
> > assert(argc > 1);
> > int n = atoi(argv[1]);
> > printf("kwadrat liczby %d wynosi %d\n", n, square(n));
> > }
> >
> > to square jest czystą funkcją.
>
> I w tym przykładzie kontekst jest ciekawszy, bo obszar użycia tego pojęcia jest
dobrze określony. Pojęcie czystej funkcji (pure function) jest znane:
>
> https://en.wikipedia.org/wiki/Pure_function
>
> Co ciekawe, jest nawet użyteczne, nie tylko z powodów, o których pisałeś, ale
również np. przy analizie poprawności albo optymalizacji programów wielowątkowych.
>
> Natomiast pojęcie *programu* czysto funkcyjnego jest słabe, bo właśnie granica
pojęcia programu jest na jego efektach ubocznych, więc nie ma jak tej czystości
zdefiniować. A podpieranie się hasłami typu "istota programu" prowadzi do kolejnych
niedopowiedzeń, bo "istotą" Twojego ostatniego przykładu może nie być liczenie, tylko
dialog z użytkownikiem albo formatowanie tesktu a programista użył square
przypadkiem, bo akurat nie umiał napisać pierwiastkowania.
Akurat w tym przypadku łatwo jest stwierdzić, że istotą tego
programu jest podanie kontrprzykładu dla Twojego wcześniejszego twierdzenia.
Natomiast nie ma nic kontrowersyjnego w tym, że np. istotą programu
do dowodzenia twierdzeń jest dowodzenie twierdzeń, istotą kompilacji
jest przekształcanie programów w języku zrozumiałym dla człowieka
w równoważne programy w języku wykonywalnym przez maszynę, albo że
istotą gry komputerowej jest dostarczanie interaktywnej rozrywki.
Wynika to z samych definicji pojęć i nie potrzeba niczego więcej.
Następne wpisy z tego wątku
- 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
- 09.10.17 18:12 fir
- 09.10.17 19:47 g...@g...com
Najnowsze wątki z tej grupy
- 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
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
Najnowsze wątki
- 2025-04-25 Sprawdzić czy spółka ma sprawy w sądzie
- 2025-04-25 Solarny Palnik Wodorowy
- 2025-04-25 amperomierz w plusie
- 2025-04-25 nie wyłączam silnika
- 2025-04-25 PILNE !! Stara żywność w marketach "Zgodnie z obowiązującym od stycznia 2024 r. prawem przeterminowana, ale nadal zdatna do spożycia żywność, może być sprzedawana przez maksymalnie kolejne 45 dni po dacie na opakowaniu. To legalne tylko wtedy, gdy opakowa
- 2025-04-25 Łódź => Team Lead Data Engineer (Snowflake) <=
- 2025-04-25 Pruszków => Key Account Manager IT <=
- 2025-04-25 Warszawa => Business Development Manager - Network and Network Securit
- 2025-04-25 Kto używa elektrolizera do wytwarzania wodoru do palnika ?
- 2025-04-25 Kraków => PHP Developer (Full Stack) <=
- 2025-04-25 Trójmiasto => Head of Social Media <=
- 2025-04-25 Poznań => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produkc
- 2025-04-25 Warszawa => Developer .Net <=
- 2025-04-25 Warszawa => Support Engineer <=
- 2025-04-25 Warszawa => Team Lead Data Engineer (obszar Snowflake) <=