-
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
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- 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
Najnowsze wątki
- 2026-01-29 KSeF - 13 wątpliwości
- 2026-01-29 A ja się pochwalę
- 2026-01-29 Warszawa => Mid/Senior IT Recruiter <=
- 2026-01-29 Warszawa => Senior Java Developer <=
- 2026-01-29 Warszawa => IT Recruiter <=
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow




Jak kupić pierwsze mieszkanie? Eksperci podpowiadają