-
Data: 2012-07-26 14:16: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 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:
>>>>
>>>> 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.
> ... wpakowac to do procedury;-) Z powazaniem
> Adam Przybyla
Rozumiem, że to są różne języki i pisze się w nich całkiem inaczej...
Pytam po prostu z ciekawości, bo AK podał jako przykład czegoś
trudnego (czy nieintuicyjnego) dla początkujących konstrukcję,
która nie ma chyba dokładnego odpowiednika w żadnym z popularniejszych
języków programowania a zinterpretowałem to tak, że AK uważa że w innym
języku (np. Pythonie, który został wymieniony wcześniej) będzie
to bardziej czytelne / intuicyjne.
Sam coś tam kiedyś liznąłem Pythona ale nie potrafię znaleźć
satysfakcjonującego odpowiednika, przy założeniu, że
po obliczeniu r z wykorzystaniem a,b,c,d chcemy pozostawić
tylko widoczność r.
można tak
>>> def wzor():
a = 8
b = a + 7
c = 12
d = 2
return (a + b) * (c - d)
>>> r = wzor()
co jednak zostawia nam w przestrzeni globalnej ,,wzor"
tak jak poniżej (co byłoby chyba najbliższym odpowiednikiem) się nie da
(chyba, że można jakoś zapisać ,,wielowyrażeniową" lambdę):
r = (lambda:
a = 8
b = a + 7
c = 12
d = 2
return (a + b) * (c - d))()
Następne wpisy z tego wątku
- 26.07.12 14:30 AK
- 26.07.12 14:34 AK
- 26.07.12 14:44 fir
- 26.07.12 14:49 Przemek O
- 26.07.12 14:50 Adam Wysocki
- 26.07.12 14:59 Edek Pienkowski
- 26.07.12 15:10 AK
- 26.07.12 15:24 fir
- 26.07.12 15:39 Adam Wysocki
- 26.07.12 15:43 Piotr M Kuć
- 26.07.12 15:47 fir
- 26.07.12 15:51 Piotr M Kuć
- 26.07.12 16:06 AK
- 26.07.12 16:11 AK
- 26.07.12 16:31 Adam Przybyla
Najnowsze wątki z tej grupy
- 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
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=