eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingZapytanieRe: Wam wszytskim odbilo z tym Lispem :)
  • Data: 2012-07-26 17:12:37
    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 16:31, Adam Przybyla pisze:
    > Piotr Chamera <p...@p...onet.pl> wrote:
    >> W dniu 2012-07-26 11:18, Adam Przybyla pisze:
    >>> Piotr Chamera <p...@p...onet.pl> wrote:
    >>>> 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))))
    >> ...
    >>>>>> A teraz może podaj odpowiednik tego kodu w Pythonie,
    >>>>>> bo to poniżej to nie jest to samo:
    >> r = (lambda:
    >> a = 8
    >> b = a + 7
    >> c = 12
    >> d = 2
    >> return (a + b) * (c - d))()
    > ... nie do konca, to trzeba troche rozumiec jak to dziala w lispie w oparciu
    > o rachunek lambda, poprawne rozwiazanie, dla konstrukcji let* wyglada tak:
    > r=(lambda a: (lambda b: (lambda c: (lambda d: (a + b) * (c -
    d))(d=2))(c=12))(b=a+7))(a=8)

    Dzięki, to mi trochę rozjaśniło...
    W moim zapisie potraktowałem ,,lambdę" jako po prostu anonimowy analog
    do ,,def" (tak jakbym tworzył normalną pythonową funkcję, tylko bez
    nazwy - a czegoś takiego w języku nie ma). Nie pomyślałem, żeby
    naprawdę rozpisać to za pomocą tej ,,rzeczywiście dostępnej" w języku
    lambdy. W tym wypadku, ponieważ b, c i d są niezależne, można to nawet
    trochę skrócić:

    r=(lambda a: (lambda b, c, d: (a + b) * (c - d))(b=a+7, c=12, d=2))(a=8)

    będzie to analogiczne do

    (setq r (let ((a 8))
    (let ((b (+ a 7))
    (c 12)
    (d 2))
    (* (+ a b) (- c d)))))

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: