eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingMakra w jezyku Scheme › Re: Makra w jezyku Scheme
  • X-Received: by 10.140.30.116 with SMTP id c107mr5173qgc.20.1415607303475; Mon, 10 Nov
    2014 00:15:03 -0800 (PST)
    X-Received: by 10.140.30.116 with SMTP id c107mr5173qgc.20.1415607303475; Mon, 10 Nov
    2014 00:15:03 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!pwr.wroc.pl!news.wcss.wroc.pl!news.man.
    lodz.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!h15no142157
    8igd.0!news-out.google.com!m4ni0qag.1!nntp.google.com!u7no496751qaz.1!postnews.
    google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Mon, 10 Nov 2014 00:15:03 -0800 (PST)
    In-Reply-To: <5...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=46.186.78.6;
    posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
    NNTP-Posting-Host: 46.186.78.6
    References: <c...@g...com>
    <f...@g...com>
    <0...@g...com>
    <3...@g...com>
    <5...@g...com>
    <6...@g...com>
    <2...@g...com>
    <3...@g...com>
    <5...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <b...@g...com>
    Subject: Re: Makra w jezyku Scheme
    From: g...@g...com
    Injection-Date: Mon, 10 Nov 2014 08:15:03 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:206890
    [ ukryj nagłówki ]

    W dniu poniedziałek, 10 listopada 2014 08:53:33 UTC+1 użytkownik firr napisał:

    > > zachecam zebys sprawdzil tego repla, bo wtedy bedziesz mogl
    > > na biezaco testowac rozne hipotezy
    >
    > chyba nie mam sily (ostatnio na nic nie mam sily) bo scheme sie interesuje tylko
    przygodnie - aczkolwiek i w ten sposob tanim kosztem mozna sie troche wdrożyc w
    temat, bo np teraz mi sie troche rozjasnilo

    to jak juz uznasz, ze wszystko rozumiesz, to bym Cie jeszcze poprosil,
    zebys opowiedzial o tym w taki sposob, dzieki ktoremu Twoim zdaniem
    zrozumialbys to szybciej, bo moze wtedy i ja sie czegos naucze odnosnie
    tego, jak nalezy wyjasniac takie rzeczy :)

    > mozesz powiedziec mmi moze jeszcze
    >
    > > (append '(+ 1 2 3) '(+ 1 2 3 4))
    >
    > > (+ 1 2 3 + 1 2 3 4)
    >
    >
    > 1) tutaj dodajemy dwa cytaty czy wynik nie powinien byc tez cytatem, czy tu na
    pewno to jest nie cytat tylko takie wyrazenie?

    nie
    cytat to jest pewne wyrazenie, natomiast wynik cytowania to w tym
    przypadku po prostu lista. Ewaluator albo zjada jednego quote'a
    i wypuwa dane, albo dokonuje ewaluacji wyrazenia zgodnie z normalnymi
    regulami, jesli nie ma quote'a.

    funkcja poniekad komplementarna jest funkcja "eval". w pewnym uproszczeniu
    zapis (eval '(+ 1 2)) jest rownowazny zapisowi (+ 1 2). eval to funkcja
    ktora interpretuje swoj argument jako kod w lispie.

    analogicznie, zapis (eval ''(+ 1 2)) odpowiada zapisowi '(+ 1 2)

    (podobna funkcja "eval" jest np. w javascripcie, tylko ze tam
    ewaluuje sie stringi, natomiast w lispie -- struktury danych,
    tj. drzewa symboli. dlatego funkcja "eval" w javascripcie musi
    dodatkowo przeparsowac kod, a w lispie nie)

    > 2) co dalej mozna zrobic z czyms takim
    >
    > > (+ 1 2 3 + 1 2 3 4)
    >
    > ? to jak rozumiem sie chyba nie moze wykonac?

    nie moze, bo nie mozna dodac funkcji do liczby.
    mozna z tym robic to wszystko, co mozna zrobic
    z kazda inna lista, np.

    (filter number? '(+ 1 2 3 + 1 2 3 4))
    ===> (1 2 3 1 2 3 4)

    (filter symbol? '(+ 1 2 3 + 1 2 3 4))
    ===> (+ +)

    oczywiscie przyklad jest bardzo abstrakcyjny

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: