eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingMakra w jezyku Scheme › Re: Makra w jezyku Scheme
  • Data: 2014-11-09 20:28:14
    Temat: Re: Makra w jezyku Scheme
    Od: g...@g...com szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu niedziela, 9 listopada 2014 19:52:10 UTC+1 użytkownik firr napisał:

    > spoko, chcesz to mozna troche jeszcze o tym pogadac - co do tego wyzej to jako tako
    rozumiem drzewkową składnie (ktora jest fajna)
    > - jako tako tez ta węzową formę - głowa i argumenty (zawsze tak jest? czy zcasem sa
    jakies inne wariacje?)

    jezeli idzie o reprezentacje list/drzew, to to jest w ogolnosci bardzo
    ciekawe zagadnienie. pare lat temu Guy Steele mial wyklad na ten
    temat w kontekscie paralelizacji obliczen: http://vimeo.com/6624203

    z cala pewnoscia z operatywnego punktu widzenia podzial na glowe i ogon
    jest bardzo wygodny, choc uzywanie list laczonych jest w ogolnosci dosc
    niewydajne (np. ze wzgledu na liniowy czas dostepu do elementow)

    w przypadku makr nie ma to zazwyczaj szczegolnego znaczenia, bo one sa i tak
    wykonywane w trakcie kompilacji wyrazenia (choc oczywiscie ktos moglby stworzyc
    jakies makro, ktore dzialaloby skrajnie niewydajnie)

    > - nie bardzo kojarze jednak to quote, po co to sie moze przydac jesli w miejscu
    programu gdzie mial byc kod pojawia sie takie nieinterpretowalne symbole to nie bedze
    syntax error?

    nie. symbole sa w lispie jednym z podstawowych typow danych, podobnie jak
    np. stringi w javascripcie.

    dlatego kiedy piszesz

    : x

    to ewaluator probuje podstawic wartosc zwiazana z symbolem (albo zglasza
    blad, jezeli symbol jest niezwiazany), za to jesli piszesz

    : (quote x)

    czy tez

    : 'x

    to otrzymujesz symbol "x"

    podobnie, kiedy piszesz

    (+ 2 3)

    to interpreter ewaluuje to wyrazenie do liczby 5, ale jesli napiszesz

    '(+ 2 3)

    to wartoscia tego wyrazenia bedzie lista, ktorej pierwszym
    elementem jest symbol "+", drugim liczba 2, a trzecim liczba 3


    przy okazji ciekawostka: o ile wyrazenia '2 i '3 dadza w wyniku
    liczby 2 i 3 (czyli zachowaja sie tak samo, ja wyrazenia 2 i 3),
    o tyle ''2 i ''3 dadza w wyniku listy

    (quote 2)

    i

    (quote 3)

    (czyli listy, ktorych pierwszym elementem jest symbol "quote", a drugim
    liczba)

    Analogicznie, ''x da w wyniku liste

    (quote x)

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: