Лиспкит Лисп - Lispkit Lisp

Лиспкит Лисп Бұл лексикалық ауқымды, таза функционалды ішкі жиыны Лисп ("Таза Лисп«) сынақ алаңы ретінде жасалған функционалды бағдарламалау ұғымдар. Ол алғашқы эксперимент үшін қолданылды жалқау бағалау. Ан SECD машинасы -де жазылған негізделген іске асыру АЛГОЛ нұсқасын әзірлеуші ​​Питер Хендерсон 1980 жылы жариялады.[1] The құрастырушы және виртуалды машина жоғары портативті нәтижесінде көптеген машиналарда іске асырылды.

Негізгі тіл

Негізгі тіл тек келесі функцияларды ұсынады, бірақ кеңейту туралы Хендерсонның кітабында айтылады[1] жалқау бағалауды нақты қолдау үшін және детерминирленбеген бағдарламалау.

атом
берілген өрнек True мәнін қайтарады, егер оның мәні атом болса; Егер жоқ болса, жалған.
қосу
берілген екі өрнек олардың сандық мәндерінің қосындысын қайтарады.
автомобиль
мәні жұп болатын өрнек берілгенде, жұптың алғашқы мәні қайтарылады.
cdr
мәні жұп болатын өрнек берілгенде, жұптың екінші мәні қайтарылады.
минус
берілген екі өрнек олардың мәндерінен тұратын мәндер жұбын береді.
див
берілген екі өрнек олардың сандық мәндерінің дивидендтерін қайтарады.
экв
берілген екі өрнек, егер олардың мәні тең болса, True мәнін береді; Егер жоқ болса, жалған.
егер
берілген үш өрнек екіншісінің мәнін қайтарады, егер біріншісінің мәні True болса, әйтпесе үшіншісінің мәнін қайтарады.
лямбда
аргументтер тізімі мен өрнек берілген, оларды функция ретінде қайтарады.
рұқсат етіңіз
декларациялары бар өрнек (өрнекте көрінетін аталған өрнектер сияқты) оның мәнін қайтарады.
летрек
сияқты, мәлімделген атаулардан басқа, декларациялардың өздерінде де көрінеді.
лев
екі өрнек берілген, егер біріншісінің мәні екіншісінің мәнінен аз немесе оған тең болса, True мәнін қайтарады; Егер жоқ болса, жалған.
mod (немесе rem)
берілген екі өрнек, олардың сандық мәндерінің модулін (қалдық деп те атайды) қайтарады.
мул
берілген екі өрнек, олардың сандық мәндерінің көбейтіндісін қайтарады.
дәйексөз
берілген өрнек, бұл өрнекті мән ретінде қайтарады.
қосалқы
берілген екі өрнек, олардың сандық мәндерінің айырымын қайтарады.

Функциялар, лямбда, рұқсат етіңіз, және летрек, ұқсас, бірақ олардың әртүрлі тәсілдермен пайдалы ететін айнымалыларға деген көзқарастары бойынша айырмашылықтары бар. лямбда функцияны анықтайды және қайтарады, рұқсат етіңіз өрнектерді айнымалы атауларымен байланыстырады, және летрек мәні бойынша ұқсас рұқсат етіңіз қоспағанда, анықтауға мүмкіндік береді рекурсивті функциялар мен мәндер, мысалы, шексіз қатарлар.

Әдебиеттер тізімі

  1. ^ а б Хендерсон, Питер (1980). Функционалды бағдарламалау: қолдану және енгізу. Prentice Hall. ISBN  0-13-331579-7.

Әрі қарай оқу

  • Хендерсон, Питер; Джонс, Герейнт А .; Джонс, Саймон Б. (1983). LispKit нұсқаулығы. Оксфорд университетінің компьютерлік зертханасы. ISBN  0-902928-18-X.

Сыртқы сілтемелер