From Wikipedia, the free encyclopedia
Scheme՝ ֆունկցիոնալ ծրագրավորման լեզու է։ Ծրագրավորման LISP լեզուների ընտանիքի ամենահայտնի ներկայացուցիչներից մեկը։ Ստեղծվել է Մասաչուսեթսի տեխնոլոգիական ինստիտուտում Գ․ Սթիլի (G․ L. Steele) և Ջ․ Սասմենի (G․ Sussman) կողմից, 1970-ականների կեսերին։
Այս հոդվածն աղբյուրների կարիք ունի։ Դուք կարող եք բարելավել հոդվածը՝ գտնելով բերված տեղեկությունների հաստատումը վստահելի աղբյուրներում և ավելացնելով դրանց հղումները հոդվածին։ Անհիմն հղումները ենթակա են հեռացման։ |
Տեսակ | ծրագրավորման լեզու, բազմահարացուցային ծրագրավորման լեզու, ֆունկցիոնալ ծրագրավորման լեզու, ծրագրավորման պրոցեդուրային լեզու և metaprogramming language? |
---|---|
Սեմանտիկա | ֆունկցիոնալ |
Կատարման ձև | ինտերպրետացիա և կոմպիլյացիա |
Առաջացել է | 1975 թ․ |
Ստեղծող | Գ․ Սթիլ, Ջ․ Սասմեն |
Նախագծող | Guy L. Steele? և Ջերալդ Ջեյ Սուսման |
Ընդլայնումներ | .scm և .ss |
Տիպիզացիա | դինամիկ |
Ներշնչվել է | LISP |
Ներշնչել է | Common Lisp, Racket |
Կայք | scheme-reports.org(անգլ.) |
Scheme (programming language) Վիքիպահեստում |
Scheme լեզուն ստեղծելիս հեղինակները հիմնական շեշտադրումը կատարել են լեզվի պարզության և մինիմալիստության վրա։ Լեզուն իր շարահյուսությունն ուղղակիորեն ժառանգել է դասական LISP լեզվից։ Ծրագրերը և տվյալները ներկայացվում են S-արտահայտություններով (S-expression)՝ կլոր փակագծերի մեջ վերցրած ցուցակներով, որոնց առաջին տարրը գործողությունն է (oeprator), իսկ հաջորդները, եթե այդպիսիք առկա են, գործողության արգումենտները։ Օրինակ, հետևյալ արտահայտության մեջ, equal?
-ը օբյեկտների հավասարությունը ստուգող գործողությունն է, իսկ 3.14
և pi
սիմվոլները՝ նրա արգումենտները․
(equal? 3.14 pi)
Scheme լեզվում ֆունկցիան կարելի է փոխանցել որպես մեկ այլ ֆունկցիայի արգումենտ կամ ֆունկցիան կարելի է վերադարձնել որպես հաշվարկման արժեք (այս դեպքում ընդունված է ասել, որ ֆունկցիան առաջին դասի օբյեկտ է)։ Ֆունկցիաները սահմանվում են define
օպերատորով։ Սրա առաջին արգումենտը մի ցուցակ է, որը պարունակում է սահմանվող ֆունկցիայի անունն ու պարամետրերը, իսկ հաջորդ արգումենտնրը կազմում են ֆունկցիայի մարմինը։ Օրինակ, հայտնի «Hello, world!» ծրագիրը Scheme լեզվով կունենա այսպիսի տեսք․
(define (hello)
(display "Hello, world!")
(newline))
Անանուն ֆունկցիաները սահմանվում են lambda
օպերատորով։ lambda
-ի առաջին արգումենտը ֆունկցիայի պարամետրերի ցուցակն է, իսկ հաջորդները՝ ֆունկցիայի մարմինը կազմող արտահայտությունները։ Օրինակ, ֆունկցիան, որը ողջունում է տրված անունով մարդուն, սահմանվում է հետևյալ կերպ․
(lambda (name)
(display "Hello, ")
(display name)
(newline))
Քանի որ ֆունկցիան առաջին դասի օբյեկտ է, lambda
֊ի միջոցով սահմանված անանուն ֆունկցիան կարելի է define
օպերատորով կապել որևէ սիմվոլի և ստանալ անվանված ֆունկցիա։ Այսպես․
(define hello-you
(lambda (name)
(display "Hello, ")
(display name)
(newline)))
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.