-
21. Data: 2014-11-10 09:40:54
Temat: Re: Makra w jezyku Scheme
Od: firr <p...@g...com>
W dniu poniedziałek, 10 listopada 2014 09:15:04 UTC+1 użytkownik g...@g...com
napisał:
> 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
ciezko mi dokladniej powiedziec jak nalezy tlumaczyc, przede wszystkim nalezy: pisac
o kluczowych sprawach w jasy sposob, uzywac silnych twierdzeń,
(tj ogolnych takich ktore sa prawdziwe w szerokim zakresie)nie mieszac roznych
nieprecyzyjnych twierdzen w jednym akapicie itp
(sporo ksiazek o programowaniu jest napisana dosyc slabo niestety, ale tez chyba
wlasnie jezyki sa raczej trudne do uczenia)
(kiedys jak bylem mlodszy nawet znajdowalem pewne wyzwanie w czytanie zle napisanych
ksiazek o kodowaniu ;/ teraz to sam nie
wiem - jestem ciagle zmeczony i malo co
robie - choc jesli juz cos robieto raczej ma to sens)
jak pojme owo scheme nieco bardziej to moge powiedziec pare uwag itp (juz troche
bardziej lapie niz kiedys ale ciagle duzo dziur w podstawach np taka kwestia
(+ 1 2 3 4 5 6)
(* 1 2 3 4 5 6)
(- 1 2 3 4 5 6)
(/ 1 2 3 4 5 6)
czy te operatory sa zdefniowane tylko dla dwu argumentow czy tez sa jakos naturalnie
zdefiniowane dla wielu? (o ile plus i * dzialaja w oczywisty sposób to dzialanie - i
/
nie jest symetryczne bo to jest pewnie niesymetryczne 1/2/3/4/5/6 a nie symetryczne
/1/2/3/4/5/6 - jak to z tym jest?)
-
22. Data: 2014-11-10 09:42:56
Temat: Re: Makra w jezyku Scheme
Od: firr <p...@g...com>
druga sprawa z tym skipowaniem quotów, zeby skipnac taki cytat wystarczy nic nie
robic czy potrzebne jest rakies slowo kluczowe typu rem/remark?
-
23. Data: 2014-11-10 09:53:35
Temat: Re: Makra w jezyku Scheme
Od: g...@g...com
W dniu poniedziałek, 10 listopada 2014 09:40:55 UTC+1 użytkownik firr napisał:
>
> ciezko mi dokladniej powiedziec jak nalezy tlumaczyc, przede wszystkim nalezy:
pisac o kluczowych sprawach w jasy sposob, uzywac silnych twierdzeń,
> (tj ogolnych takich ktore sa prawdziwe w szerokim zakresie)nie mieszac roznych
nieprecyzyjnych twierdzen w jednym akapicie itp
>
>
> (sporo ksiazek o programowaniu jest napisana dosyc slabo niestety, ale tez chyba
wlasnie jezyki sa raczej trudne do uczenia)
> (kiedys jak bylem mlodszy nawet znajdowalem pewne wyzwanie w czytanie zle
napisanych ksiazek o kodowaniu ;/ teraz to sam nie
> wiem - jestem ciagle zmeczony i malo co
> robie - choc jesli juz cos robieto raczej ma to sens)
mozesz w wolnej chwili zerknac na ksiazke "the little schemer"
-- czy jej styl tlumaczenia Ci odpowiada?
tutaj jest pdf:
ftp://ftp.fixme.ch/free_for_all/Ebook/IT%20eBooks/So
ftware%20Engineering/System%20&%20Scientific/Scheme/
The%20Little%20Schemer.pdf
> jak pojme owo scheme nieco bardziej to moge powiedziec pare uwag itp (juz troche
bardziej lapie niz kiedys ale ciagle duzo dziur w podstawach np taka kwestia
>
> (+ 1 2 3 4 5 6)
> (* 1 2 3 4 5 6)
> (- 1 2 3 4 5 6)
> (/ 1 2 3 4 5 6)
>
> czy te operatory sa zdefniowane tylko dla dwu argumentow czy tez sa jakos
naturalnie zdefiniowane dla wielu? (o ile plus i * dzialaja w oczywisty sposób to
dzialanie - i /
> nie jest symetryczne bo to jest pewnie niesymetryczne 1/2/3/4/5/6 a nie symetryczne
/1/2/3/4/5/6 - jak to z tym jest?)
- dziala w ten sposob, ze
(- n)
jest rownowazne
(- 0 n)
a
(- a b c ...)
jest rownowazne
(- a (+ b c ...))
/ dziala analogicznie, tzn.
(/ n)
jest rownowazne
(/ 1 n)
a
(/ a b c ...)
jest rownowazne
(/ a (* b c ...))
-
24. Data: 2014-11-10 09:54:06
Temat: Re: Makra w jezyku Scheme
Od: g...@g...com
W dniu poniedziałek, 10 listopada 2014 09:42:57 UTC+1 użytkownik firr napisał:
> druga sprawa z tym skipowaniem quotów, zeby skipnac taki cytat wystarczy nic nie
robic czy potrzebne jest rakies slowo kluczowe typu rem/remark?
co masz na mysli mowiac o "skipowaniu quotow"?
-
25. Data: 2014-11-10 10:03:02
Temat: Re: Makra w jezyku Scheme
Od: firr <p...@g...com>
> co masz na mysli mowiac o "skipowaniu quotow"?
jesli masz jakis tam ten drzewiasty kod to chodzi o to by jedna jago galaz zaquotowac
i by dalej po prostu nie czynilo to efektu czyli dzialalo jakos podobnie do
zakomentowania, czy na ogol to wywola blad wykonania czy tez czesto takie
zaquotowanie spowoduje wlasnie takie fekt komentarza?
-
26. Data: 2014-11-10 10:11:36
Temat: Re: Makra w jezyku Scheme
Od: firr <p...@g...com>
>
> mozesz w wolnej chwili zerknac na ksiazke "the little schemer"
> -- czy jej styl tlumaczenia Ci odpowiada?
> tutaj jest pdf:
> ftp://ftp.fixme.ch/free_for_all/Ebook/IT%20eBooks/So
ftware%20Engineering/System%20&%20Scientific/Scheme/
The%20Little%20Schemer.pdf
>
to jest chyba taki matematyczny styl, w jakims sensie jest okay ale bardziej pewnie
dla kogos kto ma pare tygodni na kurs, ja czesto wole chodzic na latwizne
mz jak piszesz tuturial to dobra opcja byloby podawanie konkretnych dobrze dobrancych
przykladów po czym dodawanie pod nimi 'uogolniajacych' wyjasnien np cos takiego
(+ (+2 3) (* 4 (......
//jakis w miare prosty ale nie za prosty przyklad i nizek komentaż ze spora iloscią
słow 'każdy'
kazdy program w scheme zbudowany jest tak .... gdzie kazdy... i kazdy.. i każdy..
-
27. Data: 2014-11-10 10:12:29
Temat: Re: Makra w jezyku Scheme
Od: g...@g...com
W dniu poniedziałek, 10 listopada 2014 10:03:03 UTC+1 użytkownik firr napisał:
> > co masz na mysli mowiac o "skipowaniu quotow"?
>
>
> jesli masz jakis tam ten drzewiasty kod to chodzi o to by jedna jago galaz
zaquotowac i by dalej po prostu nie czynilo to efektu czyli dzialalo jakos podobnie
do zakomentowania, czy na ogol to wywola blad wykonania czy tez czesto takie
zaquotowanie spowoduje wlasnie takie fekt komentarza?
Tzn. operator quote jest czyms bardzo roznym od komentowania. Komentarz
jest czyms, co jest dla ewaluatora w ogole niewidoczne, natomiast quote
to jest cos, czego ewaluator nie ma ruszac (ale to w dalszym ciagu sa dane,
ktore mozna przetwarzac). Jezeli idzie o zrobienie czegos takiego,
zeby zaquote'owac tylko jedna galaz, to do tego sluzy makro "quasiquote",
opisane w sekcji "SPECJALNA SKLADNIA DO BUDOWANIA LIST" w 3-cim rozdziale
-
28. Data: 2014-11-10 11:38:26
Temat: Re: Makra w jezyku Scheme
Od: firr <p...@g...com>
W dniu poniedziałek, 10 listopada 2014 10:12:30 UTC+1 użytkownik g...@g...com
napisał:
> W dniu poniedziałek, 10 listopada 2014 10:03:03 UTC+1 użytkownik firr napisał:
> > > co masz na mysli mowiac o "skipowaniu quotow"?
> >
> >
> > jesli masz jakis tam ten drzewiasty kod to chodzi o to by jedna jago galaz
zaquotowac i by dalej po prostu nie czynilo to efektu czyli dzialalo jakos podobnie
do zakomentowania, czy na ogol to wywola blad wykonania czy tez czesto takie
zaquotowanie spowoduje wlasnie takie fekt komentarza?
>
> Tzn. operator quote jest czyms bardzo roznym od komentowania. Komentarz
> jest czyms, co jest dla ewaluatora w ogole niewidoczne, natomiast quote
> to jest cos, czego ewaluator nie ma ruszac (ale to w dalszym ciagu sa dane,
> ktore mozna przetwarzac). Jezeli idzie o zrobienie czegos takiego,
> zeby zaquote'owac tylko jedna galaz, to do tego sluzy makro "quasiquote",
> opisane w sekcji "SPECJALNA SKLADNIA DO BUDOWANIA LIST" w 3-cim rozdziale
spoko,
jak na razie sam nie wiem czy ten lisp/scheme mnie przekonuje, przejrzalem te trzy
posty
i o ole sam mowiesz ze scheme jest jezykiem prostym itp to takie proste sie jednak
nie wydaje, do tego tak naprawde ja nie lubie
pewnego rodzaju programowania ktore 'ciągnie'
troche perlem czy wyrazeniai regularnymi,
to scheme moze nie do konca 'ciagnie' wyrazeniami regularnymi ale tej skladni jest tu
duzo
-
29. Data: 2014-11-10 11:44:20
Temat: Re: Makra w jezyku Scheme
Od: g...@g...com
W dniu poniedziałek, 10 listopada 2014 10:11:37 UTC+1 użytkownik firr napisał:
>
> to jest chyba taki matematyczny styl, w jakims sensie jest okay ale bardziej pewnie
dla kogos kto ma pare tygodni na kurs, ja czesto wole chodzic na latwizne
tzn. to jest moim zdaniem taki wlasnie zupelnie niematematyczny styl
pytan i odpowiedzi (i obrazki ze slonikiem ktory bawi sie klockami)
kwestia tego, czy pytania sa dobrze zadane, a odpowiedzi satysfakcjonujace
(problem z ta ksiazka jest tez chyba taki, ze pewne rzeczy -- takie jak
"quote" wlasnie -- sa ujete w ramach konwencji typograficznych)
> mz jak piszesz tuturial to dobra opcja byloby podawanie konkretnych dobrze
dobrancych przykladów po czym dodawanie pod nimi 'uogolniajacych' wyjasnien np cos
takiego
>
> (+ (+2 3) (* 4 (......
>
> //jakis w miare prosty ale nie za prosty przyklad i nizek komentaż ze spora
iloscią
> słow 'każdy'
>
> kazdy program w scheme zbudowany jest tak .... gdzie kazdy... i kazdy.. i każdy..
tzn. generalnie staralem sie stosowac do tych wytycznych, ale
zakladalem, ze po zeszlorocznych dyskusjach pewne podstawy lispa sa mniej
wiecej znane. celem pierwszego rozdzialu bylo uzyskanie raczej zwiezlego,
niz wyczerpujacego opisu podstawowych form specjalnych Scheme'a, zeby
pokazac prostote tego jezyka i jednoczesnie zbudowac pewna baze dla dalszych
rozkmin.
w toku kolejnych rozdzialow pojawia sie wiecej szczegolow i przykladow
dotyczacych tego, jak uzywa sie scheme'a, a w szczegolnosci -- jakie moga
byc zastosowania dla operatora "quote"
-
30. Data: 2014-11-10 12:01:22
Temat: Re: Makra w jezyku Scheme
Od: g...@g...com
W dniu poniedziałek, 10 listopada 2014 11:38:27 UTC+1 użytkownik firr napisał:
>
> spoko,
> jak na razie sam nie wiem czy ten lisp/scheme mnie przekonuje, przejrzalem te trzy
posty
> i o ole sam mowiesz ze scheme jest jezykiem prostym itp to takie proste sie jednak
nie wydaje, do tego tak naprawde ja nie lubie
> pewnego rodzaju programowania ktore 'ciągnie'
> troche perlem czy wyrazeniai regularnymi,
> to scheme moze nie do konca 'ciagnie' wyrazeniami regularnymi ale tej skladni jest
tu duzo
tzn. jezeli idzie o skladnie, to z jednej strony sposob budowania wyrazen
jest bardzo jednorodny (w przeciwienstwie do wielu jezykow takich jak np. C,
w ktorym masz duzo specjalnych konstrukcji i operatorow jak *, ++, &, []),
a z drugiej -- ilosc podstawowych form skladniowych wynosi 6, czyli naprawde
niewiele (dla porownania, w C masz ponad 30 slow kluczowych)
jezeli idzie do perla, to zgodze sie, ze to jest jezyk skrajnie nieopisowy
(jest duzo dziwnych znaczkow jak %,#,@,$,&,*, i kilka rodzajow nawiasow,
ktore w zaleznosci od kontekstu maja rozne znaczenie) -- i pod tym wzgledem
perl jest calkowitym przeciwienstwem scheme'a (i pythona)