|
|
|
SUVETI
|
Vuvedenie v Lisp/Scheme pod Gnu/Linux
|
|
|
|
|
|
ot M.Petrov(16-06-2007)
reiting (19)
[ dobre ]
[ zle ]
Variant za otpechatvane Vuvedenie v Lisp/Scheme
Napisana ot M. Petrov(blagodarnosti na : http://www.dhstudio.eu)
Statiiata „Vuvedenite v Lisp/Scheme“ e napisana za
potrebitelite na Gnu/Linux. Instalatsiiata na DrScheme pod
Gnu/Linux (Debian 3.1/4.0) se izvurshva po sledniia nachin:
apt-get install drscheme.
Lisp e razraboten ot Dzhon Makkarti prez 1958 g. dokato e
bil v MIT (Massachusetts Institute of Technology). Lisp e
baziran na Lambda- smiataneto vuvedeno ot Alonso CHurch prez
1930 godina. Imeto na Lisp proizhozhda ot "Lisp
Processing". Lisp ima dosta goliam broi dialekti
kato nai- populiarni sa: Common Lisp i Scheme. Toi burzo
stava edin ot nai- populiarnite programni ezitsi za izkustven
intelekt. Nie shte razgledame dialekta Scheme koito e bil
razraboten prez 1970 godina ot Gai Stiili i Dzherard
Dzhei Susman. Ezika Scheme ima dva definirani standarta:
Ofitsialniia IEEE standart i standarta narechen Revisedn Report
on the Algorithmic Language Scheme koito e abreviatura ot
RnRS, kudeto n e nomer na reviziia. Segashniia standart e R5RS
i R6RS e v protses na razrabotka. Prilozhenieto koeto shte
polzvame v GNU/Linux shte bude: drscheme
1.0 Operatori i Operandi
Sustavna chast ot povecheto ezitsi sa negovite operatori i
operandi. Osnovnite operatori sa: /, *, +, - .Neka
razgledame sledniia primer za subirane na dve chisla
izpolzvaiki operatori i operandi:
Primer 1.
> (+ 5 4)
9
Osnovnite operatori polzvat sledniia sintaksis:
(<operator> <operand1> <operand2>
<operand N>)
Terminite operatori, protseduri i funktsii imat ednoznachno
znachenie kakto i terminite argument i operand. Slozhnostta
pri upotrebata na operatori mozhe da se uvelichi pri
upotrebata na poveche ot edin operator v sustavianeto na
konkreten izraz. Primer za izraz izpolzvasht poveche ot edin
operator e sledniia:
Primer 2.
> (+ 5 (* 3 2))
11
Primer 3.
> (+ 5 (/ 14 2))
12
Primer 4.
> (+ (* 1 2) (- (+ 3 4) (/ 6 3)))
7
Neka razgledame podrobno deistvieto koeto izvurshva primer
2. Razgledaniia primer 2 kazva slednoto: suberi chisloto 5 s
chisloto polucheno ot umnozhenieto na chislata 3 i 2 i izvedi
polucheniia rezultat .
2.0 Identifikatori, Prazni mesta i Komentari
Identifikatorite sa posledovatelnost ot bukvi, chisla i
slednite simvoli: ! $ % & * + - . / : < = > ? @ ^ _
~
TSelta na praznite mesta e da napraviat koda po- lesen za
chetene. Primer s izpolzvane na prazni mesta mozhe da vidite v
sledniia Scheme izraz:
Primer 5.
> (* (+ 1 2 )
(+ (- 13 3) ))
30
Komentarite sa edna fundamentalna chast vuv vseki programen
ezik. Komentarite sushto blagopriiatstvat za po- goliamata
chetlivost na koda. Izpolzvaneto na komentari predrazpolaga
izpolzvaneto i razrabotvaneto na koda ot vseki
programist. Komentarite v Scheme se oznachavat sus ' ; '.
Vseki tekst razpolozhen ot ';' do kraia na reda se
ignorira ot kompilatora. V Scheme niama komentari operirashti
na poveche ot edin red.
3.Fundamentalni tipove
V Scheme ima devet tipa. Nie shte razgledame osnovnite:
bulevi, chisla, nizove i simvoli.
3.1 Bulev tip
Pri upotrebata na bulevi tipove e neobhodimo da se znae,
che tozi tip izvezhda „istina“ ili „luzha“. Istinata pri
izpolzvaneto na bulev tip se otbeliazva sus „#t“, a luzhata
sus „#f“ . Neka sledvame izrechenata mudrost „Hiliadi dumi se
ravniavat na edin pogled“ i razgledame slednite primeri:
Primer 6.
> (boolean? 3.14)
#f
> (number? 131)
#t
> (boolean? #t)
#f
> (boolean? #f)
#t
Razlichni bulevi operatori vklyuchvat i, ili i ne:
Primer 7.
> (and #f #t)
#f
> (or #f #t)
#t
> (and (not #f) (or #f #t))
#t
3.2 CHisla
CHislovite tipove imat niakolko podtipa kato: number,
complex, real, rational, i integer. Za da razberete
tochnostta na konkretno chislo mozhe da polzvate : exact?“ ili
„inexact?“. Neka razgledame slednite primeri:
Primer 8.
> (/ 4 7)
4/7
> (number? (/ 4 7))
#t
> (rational? (/ 4 7))
#t
> (integer? (/ 4 7))
#f
> (exact? (/ 4 7))
#t
> (inexact? (/ 4 7))
#f
> (sqrt (/ 4 7))
0.7559289460184545
> (exact? (sqrt (/ 4 7)))
#f
> (inexact? (sqrt (/ 4 7)))
#t
3.3 Nizove
Niz e razpolozheniia tekst mezhdu dvoini kavichki „“. V
nizovete e vuzmozhna upotrebata na spetsialni simvoli
blagodarenie na „\“ . Mnogo chesto izpolzvani sa nizovete i
funktsiite operirashti s tiah. CHesto sreshtani niz funktsii sa:
substring, string-ref.
Primer 9.
> (substring "www.dhstudio.eu" 4 15)
"dhstudio.eu"
> (substring "testing" 4 7)
"ing"
> (substring "www.dhstudio.eu" 4)
"dhstudio.eu"
> (string-ref "testing" 3)
#\t
3.4 Simvoli
Upotrebata na simvoli uvelichava razmera na strukturite
danni koito ezika obrabotva. Za rabota sus simvoli se
upotrebiava predikata eq? izvesten sushto kato predikat za
identichnost. Definitsiiata za identichnost na dva simvola
glasi, che dvata simvola triabva da se sustoiat ot edni i sushti
znatsi zapisani v edin i susht red. Neka razgledame sintaksisa
na predikata eq ?
Primer 10.
> (eq? m1 m2)
Semantikata na predikata eq? se bazira na istina i luzha
t.e. ako: simvolnite izrazi m1 i m2 sa otseneni kato edni i
sushi izrazi to rezultata e #t (true/istina) dokato v
protiven sluchai e #f (false/luzha). CHesto sreshtan e predikata
symbol? , koito ima za tsel da otseni konkreten obekt i da
izvede #t (true/luzha) , ako obekta e simvol i obratnoto.
Primera po- dolu ilyustrira deistvieto na predikata
symbol?
Primer 11.
> (symbol? 10)
#f
> (symbol? 'martin)
#t
4.0 Promenlivi
Deklarirane na globalni promenlivi se izvurshva s operatora
define. Stoinostta na promenlivata po- rano ukazana s
operatora define mozhe da bude promeniana s operatora set! .
Sledniia primer izobraziava izkazanoto do momenta.
Primer 12.
> (define sbor 26)
> (set! Sbor (+ 20 5))
> sbor
25
5.0 Spisutsi
CHislata, nizovete, simvolite i bulevite konstanti (#t |
#f) se narichat sushto atomi. Osnovna konstruktsiia na lispo-
podobnite funktsionalni ezitsi e S- izrazut. S- izrazut se
naricha tochkova dvoika ili samo dvoika.
Definitsiia za S- izraz:
1.> Vseki atom e S- izraz
2.> Ako A i B sa S- izrazi, to (A.B) e S- izraz
3.> S- Izraz se opredelia samo po pravilata 1> i
2>
CHrez tochkova dvoika se „slepvat“ dva obekta i se konstruira
sustaven obekt. Grafichno izobrazeno slepvane na dva obekta
izglezhda po sledniia nachin:
*****************************
* purvi obekt * vtori
obekt *
*****************************
Liavata chast na kletkata sudurzha purviia obekt, a diasnata
chast vtoriia obekt. Neka razgledame primer za dvoikata (9 .
8)
Primer 13.
*************
* 9
* 8 *
*************
Neka razgleda malko po- uslozhnen primer na dvoikata
((2.3).(4.5))
Primer 14.
*************
************* *************
* 2 * 3
* -> * <- *
-> * <- * 4
* 5 *
*************
************* *************
Definirane na spisuk v Scheme se izvurshva sus primitivnata
protsedura list. Primer za definirane na spisuk:
Primer 15.
> (define dhstudio.eu ( list 'm 'a 'r 't 'i 'n) )
> dhstudio.eu
(m a r t i n)
Vuv vseki lispo- podoben ezik sa vgradeni sredstva za
realizirane na dvoiki i rabota s tiah. V Scheme tezi sredstva
sa fundamentalnite protseduri cons, car i cdr.
5.1 Protsedura cons
Protsedurata cons e sukrashtenie ot construct ili konstruktor
na dvoiki. Konstruktora ima sravnitelno lesen sintaksis ot
vida: (cons b2 c3), kudeto cons e izpolzvanata protsedura, a
b2, c3 sa izrazi chiito otsenki sa S-izrazi, t.e. atomi ili
tochkovi dvoiki. Semantikata na protsedura cons se nablyudava v
sledvashtiia razgledan primer koito konstruira dvoiki:
Primer 16.
> (define b1 10)
> (define c2 20)
> (cons b1 c2)
(10 . 20)
5.2 Protsedura car
Ideiata na protsedurata car e da nameri purviia obekt na
dvoika ili spisuk. Semantikata i sintaksis na razglezhdanata
protsedura car nai- lesno se obiasniava sus sledniia primer
koito izvezhda purvi element ot spisuk:
Primer 17.
> (define testlist (list 0 1 2 3 4 5 6 7 8 9 ))
> (car testlist)
0
Predhodniia primer izobraziava izvezhdane purvi chlen na
spisuk.
Primer 18.
> (define a 10) (define b 20)
> (define c (cons a b) )
> (car c)
20
Predhodniia primer izvezhda purviia obekt na dvoika.
5.3 Protsedura cdr
Protsedurata cdr e retsiprochna na car, t.e. neinata ideia e
da izvede vtoriia obekt ot spisuk ili dvoika. Semantikata i
sintaksisa e analogichen na protsedurata car. Sledniia primer
izobraziava deistvieto na protsedurata cdr:
Primer 19.
(define a 10) (define b 20)
(define c (cons a b) )
(cdr c)
5.4 Protsedura append
Deistvieto koeto izvurshva tekushtata protsedura append e
konkatenatsiia na spisutsi. Konkatenatsiia na spisutsi mozhe da
nablyudavame v sledniia primer:
Primer 20.
> (define a(list 1 2 3 )) (define b(list 4 5 6 ) )
> (append a b)
(1 2 3 4 5 6)
5.5 Protsedura reverse
Protsedurata reverse (obrushtane) obrushta elementite na
spisuk. Neka razgledame sledniia primer za protsedurata
reverse:
Primer 21.
> (define a(list 1 2 3 ))
> (reverse a)
(3 2 1)
6.0 Fundamentalni kontrolni strukturi
6.1 Kontrolna struktura cond (short for conditional)
Strukturata cond ima za tsel da otseni konkreten izraz i da
vurne rezultat (istina | luzha ). Sintaksisa na strukturata
cond e sledniia:
(cond
(<condition1> <expression1>)
(<condition2> <expression2>)
...
(else <expressionN>))
Sledniia primer onaglediava tselta na kontrolnata struktura
cond.
Primer 22.
> (define (abs1 x)
> (cond ((> x 0) x)
> ((= x 0) 0)
> (else (- 0 x)) ))
6.2 Protsedura „case“
Protsedura „case“ e podobna na switch pri C/C++/Java.
Protsedurata definira predvaritelno konkreten broi varianti
koito mogat da budat izbirani. Sintaksisa i semantikata na
protsedura „case“ mozhe da nablyudavame vuv sledniia primer:
Primer 23.
define get-type
(lambda (data)
(case data
((0 1 2 3 4 5 6 7 8 9) 'digit)
((#\A #\E #\I #\O #\U #\Y #\a #\e #\i
#\o #\u #\y) 'vowel)
(else
(if (and (char? data)
(char-alphabetic? data))
'consonant
'other)))))
> (get-type "Hawaii")
other
> (get-type 5)
digit
> (get-type #\o)
vowel
> (get-type #\s)
consonant
6.3 Protsedura „or“
Scheme protsedurata „or“ se obiasniava dosta dobre v sledniia
primer:
Primer 24.
> (or #f #f #f #f)
#f
> (or #f 42 #f)
42
> (or #t #f)
#t
6.4 Protsedura „and“
Scheme protsedurata „and“ se obiasniava dosta dobre v sledniia
primer:
Primer 25.
> (and #t #t #t #t)
#t
> (and #t 3.14 'squirrel)
squirrel
> (and 'false '() #f 'only-the-#f-is-false)
#f
> (and 'false '() 'only-the-#f-is-false)
only-the-#f-is-false
6.5 Protsedura if
Protsedurata if e podobna na protsedurata cond. Scheme
protsedurata „if“ se obiasniava dosta dobre v sledniia
primer:
Primer 26.
(define (chislo num)
> ( cond
> ((> num 0)
"Polojitelno")
> ((< num 0)
"Otricatelno")
> ((= num 0) "Rawno na 0")
> (else "zero")))
> (chislo 10)
"Polojitelno"
> (chislo 0)
"Rawno na 0"
> (chislo -1)
"Otricatelno"
Scheme e dosta interesen i zabaven dialekt na Lisp uspiavasht
da ni zaintriguva sus svoiata krasota i iasno. Scheme si
ostava napulno podhodiasht ezik za uchebni tseli, no sushto taka
namira i drugi prilozheniia.
SUDURZHANIE
1.0 Operatori i Operandi
2.0 Identifikatori, Prazni mesta i Komentari
3.0 Fundamentalni tipove
3.1 Bulev tip
3.2 CHisla
3.3 Nizove
3.4 Simvoli
4.0 Promenlivi.
5.0 Spisutsi
5.1 Protsedura cons
5.2 Protsedura car
5.3 Protsedura cdr
5.4 Protsedura append
6.0 Fundamentalni kontrolni strukturi
6.1 Kontrolna struktura cond (short for conditional)
6.2 Protsedura „case“
6.3 Protsedura „or“
6.4 Protsedura „and“
6.5 Protsedura if
BIBLIOGRAFIQ
1. Ezitsi za funktsionalno i logichesko programirane, M.
Todorova
2. http://cs.gettysburg.edu/~tneller/cs341...
3. http://www.scheme.com/tspl3/
<< | >>
|
|
|
|
|
Evala! Ot: Mircho Mirev <mircho< at >linux-bg[ tochka ]org> Na: 17-06-2007@8:55 GMT+2 Otsenka: 1/NeutralenMnogo blagodaria, che napisa statiia za tozi prekrasen ezik i kak da se polzva pod Linuks.
[Otgovori na tozi komentar] bravo Ot: niki Na: 17-06-2007@15:49 GMT+2 Otsenka: 1/Neutralentukmo imam izpit po tova chudo sled 1 sedmitsa :)
[Otgovori na tozi komentar] druga implementatsiia Ot: Dimitur Trendafilov Na: 17-06-2007@17:12 GMT+2 Otsenka: 1/NeutralenSamo da spomena oshte edna realizatsiia na Scheme za GNU / Linuks - mit-scheme.
[Otgovori na tozi komentar]
Kum: druga implementatsiia Ot: bat'Serjo Na: 18-06-2007@6:42 GMT+2 Otsenka: 1/NeutralenPulen shit. Ne razbiram shto za mazohist triabva da si za da pishesh na ezik s tolkova otvratitelen sintaksis. Ako ezika beshe tolkova iak i nezamenim, ne mislite li che sega shteshe da e ezik nomer edno? Lisp ne predlaga absolyutno nishto novo, nito revolyutsionno (osven grozen sintaksis). Niama neshto koeto da se napravi na lisp i da ne mozhe da se napravi na piton ili smaltalk na sushtiia ako ne i po maluk broi redove. Are golemite fenove na tazi boza molia predizvikvam vi daite edin istinski primer za 'moshtta' na tozi ezik.
P.S. Izkustven intelekt miskustven intelekt. Are daite mi kod na nevronna merzha pisana na lisp, ili oshte po dobre vzemete razgledaite kakuv ezik se izpolzva v momenta za izsledvane na II http://pyrorobotics.org/ . Are stiga sme zhiveli v minaloto i nai-veche v 70 godini.
[Otgovori na tozi komentar]
Kum: Kum: druga implementatsiia Ot: Mircho Mirev <mircho (a) linux-bg__dot__org> Na: 18-06-2007@7:22 GMT+2 Otsenka: 1/NeutralenEh, mladezho.
[Otgovori na tozi komentar]
Eh, kakuv ezik! KrasUta! Ot: Dimitur ZHekov <jimmy (a) is-vn[ tochka ]bg> Na: 19-06-2007@6:32 GMT+2 Otsenka: 1/Neutralen(lambda (*<8-]= *<8-[= ) (or *<8-]= *<8-[= ))
(defun :-] (<) (= < 2))
(defun !(!)(if(and(funcall(lambda(!)(if(and '(< 0)(< ! 2))1 nil))(1+ !))
(not(null '(lambda(!)(if(< 1 !)t nil)))))1(* !(!(1- !)))))
Krasota, nali?.. ;-) LISP e neshto kato ADA i HURD - mnogo hubavo, samo deto po niakakva prichina ne go izpolzvat mnogo-mnogo. S izklyuchenie na raboteshtite s EMACS, estestveno - zabelezhitelen redaktor, s okolo 700 osnovni klavisha i kombinatsii...
Vprochem na APL mozhe da se napishe oshte po-zavurzan kod. Pri nego kakvoto i da natrakash ot klaviaturata - vse niakak shte se izpulni. :-)
[Otgovori na tozi komentar]
Kum: Eh, kakuv ezik! KrasUta! Ot: Bongo Na: 19-06-2007@10:25 GMT+2 Otsenka: 1/NeutralenNauchete neshto za Lisp predi da sipete plyunki i sopoli. Preporuchvam vi Practical Common Lisp na Peter Siebel, naprimer.
Ili opitaite da pochetete malko CLTL2 -- shte razberete kolko mnogo ne razbirate.
Common Lisp e osoben ezik -- mnogo po-razlichen ot vsichko koeto mozhete da vidite v tseliia Algolopodoben sviat. Nishto chudno, che izglezhda stranen i neudoben na algolooformeniia um -- neshtata prosto se praviat po razlichen nachin. Ne se opitvaite da "prevezhdate" C++ na Lisp (rezultatite obiknoveno sa posredstveni).
Ne se zaiazhdam -- naistina poglednete Practical Common Lisp (dostupna e svobodno). SHTe otkriete udivitelni neshta i shte vidite, che Lisperite sa pravi kato tvurdiat che "suvremennite" ezitsi za programirane vurviat natam kudeto Common Lisp otdavna e pristignal.
Otnosno Scheme -- tova e drugata filosofiia v Lisp -- minimalistchnata. Za razlika ot Common Lisp, koito e navodnen sus spetsialni sluchai, izklyucheniia, arhaichni formi (koito ne e preporuchitelno da se izpolzvat), Scheme se stremi kum minimalizum i iasnota. Sintaksisut na scheme mozhe da bude nauchen za edin den. Az haresvam prostotata na Scheme, no predpochitam po-bogatiia Common Lisp. I opredeleno ot ezitsite na koito sum rabotil, Common Lisp e ezikut, koito me e nauchil n nai-mnogo neshta.
Opredeleno si zasluzhava.
[Otgovori na tozi komentar]
Kum: Kum: Eh, kakuv ezik! KrasUta! Ot: icokanov <hristo_kanov __@__ abv __tochka__ bg> Na: 19-06-2007@15:47 GMT+2 Otsenka: 1/NeutralenMnogo hubava statiia.
[Otgovori na tozi komentar] Kum: Kum: Eh, kakuv ezik! KrasUta! Ot: Dimitur ZHekov <jimmy__at__is-vn__dot__bg> Na: 20-06-2007@7:29 GMT+2 Otsenka: 1/NeutralenE haide, haide, obiknoven ezik s ednotipni obekti, v sluchaia funktsii (neshto sredno mezhdu matematicheski i programni). Ako izpolzvashe normalnata notatsiia vmesto perverznata Polska, sigurno dori shteshe da e populiaren. Ot izchislitelniia model, na koito e baziran, po nikakuv nachin ne sledva che triabva da izpolzva prefiksna notatsiia, nito che tia dava kakvito i da e predimstva. Za kapak i operatorite ne si znaiat broia argumenti, i kato se pochnat edni skobi - do peto-shesto nivo otivat za prosti izrazi.
Lichno az sum imal sumnitelnoto udovolstvie da rabotia i na stekovi ezitsi, i na simulativni, i sintaksisa na LISP (ne kontseptsiiata) iskreno me razsmiva. :-)))))
[Otgovori na tozi komentar]
Abe ei! Ot: Stash Na: 11-07-2007@20:07 GMT+2 Otsenka: 1/NeutralenEzika si e super naskoro i az se zapoznah s nego i ostanah super shtastliv che sum se dokosnal do nego. Statiiata si ia biva da kazhem si e super :).
P.P. Oshte edna realizatsi ia na common LISP - clisp az lichno na neia pisah i ostanah dovolen. ima ia v debian pone az tam ia polzvah
A za tezi koito ruptaiat , ia pomislete tozi ezik kakvo e dal na suvremennite ezitsi ?
I molia ne otrichaite minaloto i nego zabraviaite!
A'e pozdravi
[Otgovori na tozi komentar] Kuv sintaksis ve! Ot: Velüo Na: 13-11-2007@21:43 GMT+2 Otsenka: 1/NeutralenSkupi priiatelyu, lisp ne se izpolzva shiroko prosto, zashtoto nikoi oshte ne e izmislil dostatuchno dobur kompilator, koito da izkarva efikasen mashinen kod. Dori mezhdu otdelnite kompilatori na lisp se zabeliazvat golemi razminavaniia v efikasnostta na mashinniia kod. Posledno kato chetoh, mislia che kommon lisp se durzheshe nai-dobre.
A zashto ezikut e hubav:
1. Ami opitai se za 3 min da zapochnesh da pishesh obektno orientirano na S, ne S++ s negovite glezotiiki. Az tova sum go pravil na Skiim.
2. Nadiavam se da si chuval niakoga za funktsionalno programirane i s kakvo to se olichava ot imperativnoto. Probvai da napishesh edna istinski funtsionalna programa na drug ezik, posle shte vidish, che s lisp tova stava 10 puti po-burzo.
3. Imashe edno sravnenie m/u lisp i s. Rezultata beshe, che prohramite, napisani na lisp vurviat 10 puti po-bavno, ot tezi na s, no za smetka na tova vremeto za napisvaneto im e 10 puti po-malko, otkolkoto na s. I nishto chudno s vse pak si e asembler ot malko po-visok klas.
Pozdravi!
[Otgovori na tozi komentar] Kum: Kum: druga implementatsiia Ot: Velüo Na: 13-11-2007@21:45 GMT+2 Otsenka: 1/NeutralenSkupi priiatelyu, lisp ne se izpolzva shiroko prosto, zashtoto nikoi oshte ne e izmislil dostatuchno dobur kompilator, koito da izkarva efikasen mashinen kod. Dori mezhdu otdelnite kompilatori na lisp se zabeliazvat golemi razminavaniia v efikasnostta na mashinniia kod. Posledno kato chetoh, mislia che kommon lisp se durzheshe nai-dobre.
A zashto ezikut e hubav:
1. Ami opitai se za 3 min da zapochnesh da pishesh obektno orientirano na S, ne S++ s negovite glezotiiki. Az tova sum go pravil na Skiim.
2. Nadiavam se da si chuval niakoga za funktsionalno programirane i s kakvo to se olichava ot imperativnoto. Probvai da napishesh edna istinski funtsionalna programa na drug ezik, posle shte vidish, che s lisp tova stava 10 puti po-burzo.
3. Imashe edno sravnenie m/u lisp i s. Rezultata beshe, che prohramite, napisani na lisp vurviat 10 puti po-bavno, ot tezi na s, no za smetka na tova vremeto za napisvaneto im e 10 puti po-malko, otkolkoto na s. I nishto chudno s vse pak si e asembler ot malko po-visok klas.
Pozdravi!
[Otgovori na tozi komentar] lala Ot: h2 Na: 22-04-2008@5:57 GMT+2 Otsenka: 1/Neutralenhttp://software-lab.de/radical.pdf
*LIST processing :)
A ne kakto aftora e sburkal v nachaloto na
statiqta.
I ne e chak tolkova neveroqtno, ima si
bezplatna knijka za Scheme, koqto te uchi kak
da programirash. Tuka e predstaveno chast ot
syntaxisa.
[Otgovori na tozi komentar]
|
|
|
|
|
|
|
|