eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingOptymalizacja struktur danych dla programów funkcyjnych › Re: Optymalizacja struktur danych dla programów funkcyjnych
  • Data: 2017-10-06 14:01:21
    Temat: Re: Optymalizacja struktur danych dla programów funkcyjnych
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    > > 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.

    > > 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ń.

    > Stwierdzenie, że kompilator jest w istocie programem czysto funkcyjnym
    > oznacza tyle, że kompilacja jest rodzajem transformacji (przekształcenia).

    Każde przetwarzanie czegokolwiek takie jest.

    > 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.

    --
    Maciej Sobczak * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: