Scheme (programski jezik) — разлика између измена

Садржај обрисан Садржај додат
м додана категорија Програмски језици помоћу справице HotCat
Нема описа измене
Ред 12:
|актуелна верзија = R7RS (ratifikovan standard)
|датум актуелне верзије = 2013
|типови = strogi, dinamički
|имплементације =
|дијалекти =
Ред 44:
Prethodni standard R6RS je izazvao mnogo kontroverznosti zbog svoje glomaznosti, sto je odudaralo od prvobitne minimalističke filozofije. Stoga je Scheme-ov upravni odbor koji nadgleda standardizacije 2009. godine objavio nameru da se Scheme podeli na dva jezika – jedan veliki moderni programski jezik pogodan za praktičnu upotrebu i jedan mali pogodan za istraživanja, koji bi bio podskup velikog, pri čemu bi se zadržao samo minimalni podskup podržanih koncepata.
 
== Karakteristike jezika ==
 
=== Primitivne numeričke funkcije ===
Scheme sadrži primitivne funkicje za osnovne aritmetičke operacije. To su +, -, * i / za sabiranje, oduzimanje, množenje i deljenje. + i * mogu imati nula ili više parametara. Ako se +, odnosno *, pozove bez parametara vraća se 0, odnosno 1. U slučaju da se proslede argumenti, vrši se njihovo sabiranje, odnosno množenje. - i / mogu imati 2 ili više parametara. Za -, u slučaju više od dva argumenta, od prvog se oduzimaju ostali, a slično i za /. Primeri:
{| class="wikitable"
|-
! '''Izraz'''!! '''Rezultat'''
|-
| <code>175</code> || 175
|-
| <code>(+)</code> || 0
|-
| <code>(* 7 8)</code> || 56
|-
| <code>(+ 10 12 14)</code> || 36
|-
| <code>(- 24 (* 2 6))</code> || 12
|-
| <code>(/ 28 7 2)</code> || 2
|}
Postoji i veliki broj drugih numeričkih funkcija u Scheme-u, među kojima su <code>MODULO</code>, <code>ROUND</code>, <code>MAX</code>, <code>MIN</code>, <code>LOG</code>, <code>SIN</code> i <code>SQRT</code>.{{napomena|U definiciji jezika se ne pravi razlika između malih i velikih slova prilikom pisanja rezervisanih reči i predefinisanih funkcija. Međutim, neke implementacije zahtevaju korišćenje malih slova.}}
=== Definisanje funkcija ===
Scheme program jeste kolekcija funkcija, pa pisanje programa podrazumeva definisanje velikog broja funkcija. Bezimena funkcija se konstruiše pomoću ključne reči <code>LAMBDA</code> i predstavlja [[Ламбда рачун|lambda izraz]]. Na primer, <code>(LAMBDA (x) (* x x))</code> je bezimena funkcija koja vraća kvadrat svog numeričkog argumenta. Ova funkcija se može koristiti kao i bilo koja imenovana funkcija, tako što se stavi na početak liste koja sadrži argument funkcije. Na primer, sledeći izraz vraća 49:<br/><code>((LAMBDA (x) (* x x)) 7)</code><br/>Lambda izrazi mogu imati i veći broj argumenata.<br/>Scheme-ova funkcija specijalne forme <code>DEFINE</code> služi da veže ime za vrednost ili lambda izraz.
 
 
== Napomene ==
{{napomene}}
== Reference==
{{reflist}}
[[Категорија:Програмски језици]]