eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingZapytanieRe: Wam wszytskim odbilo z tym Lispem :)
  • Data: 2012-07-26 11:14:21
    Temat: Re: Wam wszytskim odbilo z tym Lispem :)
    Od: Piotr Chamera <p...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2012-07-26 10:29, AK pisze:
    > Użytkownik "Piotr Chamera" <p...@p...onet.pl> napisał:
    >> (setq r
    >> (let* ((a 8)
    >> (b (+ a 7))
    >> (c 12)
    >> (d 2))
    >> (* (+ a b) (- c d))))
    >
    > Ano wlasnie. Klucz to let* (wymusza sekwencyjnosc)
    > Tylko:
    > 1. wytlumacz to poczatkujacemu
    > 2. Czy nie moglby sobie sam Szanowny Kompilator sprawdzic
    > zaleznosci i wylaczyc te ktore sa od siebie zalezne ze
    > swej "rownoleglosci" ?
    >
    >> A teraz może podaj odpowiednik tego kodu w Pythonie,
    >> bo to poniżej to nie jest to samo:
    >>
    >> a = 8
    >> b = a + 7
    >> c = 12
    >> d = 2
    >> r = a + b * c + d
    >
    > A dlaczegoz to Kolega zgubil nawiasy i (pomylil znak, rozumiem ze typo) ?
    > Przeciez to wbrew matematyce
    > Winno byc: r = (a + b) * (c - d)

    oczywiście...
    wklepałem to na szybko, żeby pokazać przykład, w którym
    a,b,c,d są ,,globalne" - nie wiem, jak to zapisać w Pythonie tak, aby
    nie były widoczne poza zasięgiem, w którym są potrzebne i żeby nadal
    było czytelnie.

    > Troche bardziej skomplikowane wyrazenia w Lispie wygladaja _koszmarnie_
    > (wiem co mowie bo conieco - bardzo malo - "robilem" w Lispie do AutoCada

    mogę się zgodzić, chociaż bardziej skomplikowane wyrażenia matematyczne
    wyglądają źle w prawie każdym języku programowania...

    > PS: W samych poczatkach mego programowania spotkalem sie z programowalnymi
    > kalkulatoramio HP (nie te "reczne" ale takie wielkosci dzisiejszego PCta
    > z tzw.
    > cartridges jako medium). Tam wszytsko bylo w odwrotnej notacji polskiej
    > (wiadomo z jakiego powodu) a i programy byly naprawde nietrywialne
    > (glownie numeryka oczywiscie). Jednak _w zyciu_ nie polecil bym tego
    > poczatkujacym ktorzy znaja normalna arytmetyke/matematyke.
    >
    > PS1: To wbrew pozorom tez tyczy "modelowania rzeczywistosci".
    > Arytmetyka w Pythonie czy Javie czy inny C++ nawet "modeluje"
    > dobrze rzeczywistosc (czyli normalna matematyke), a Lisp wprowadza
    > abstrakt (owszem wtedy jest "spojnosc skladniowo/paradygmatowa"
    > tylko ze ana tylko sama sobie sie chyba podoba :)

    utożsamianie matematyki i arytmetyki komputerów to jest takie budowanie
    na złudzeniach, potem ludzie dziwią się, że:
    >>> 10.0 - 9.0 == 1.0
    True
    >>> 10.0 * (1.0 - 0.9) == 1.0
    False

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: