نگاهی به تاریخچه ی Lisp:
ایده کلی:
برخی از ایده های قدیمی ، قدیمی به نظر می رسند.
برخی از ایده های قدیمی ، جدید به نظر می رسند.
مثالی از یک زبان خوش ساخت و کار راه انداز
متفاوت از C ، C++ و JAVA : شانسی برای متفاوت فکر کردن
موضوعات کلی در رابطه با طراحی زبان را شرح می دهد.
پیشگام در AI
فرموله کردن استدلال ها
همچنین
پیشنهاد اشتراک زمانی
تئوری های ریاضی
Lisp
از علاقه به محاسبات سمبلیک سرچشمه گرفت
(ریاضی ، منطق)
¨دارای لهجه های متفاوتی است:
Lisp 1.5, Maclisp, …, Scheme, ...
CommonLisp دارای ویژگیهای اضافی است
در این درس مختصری از Lisp 1.5 توضیح داده خواهد شد.
¨دارای نحو ساده ای است
(+ 1 2 3)
(+ (* 2 3) (* 4 5))
(f x y)
Atom ها شامل اعداد و رشته های غیر قابل تقسیم است.
<atom> ::= <smbl> | <number>
<smbl> ::= <char> | <smbl><char> |<smbl><digit>
<num> ::= <digit> | <num><digit>
جفتهای دارای نقطه (dotted pairs)
برای pair از (A . B) استفاده می شود.
به عبارتهای سمبلیک، S-expressions می گویند:
<sexp> ::= <atom> | (<sexp> . <sexp>)
توابعی که روی اتمها و pair ها عمل می کنند:
cons car cdr eq atom
اعلانها و کنترل:
cond lambda define eval quote یا ‘
مثال:
(lambda (x) (cond ((atom x) x) (T (cons ‘A x))))
function f(x) = if atom(x) then x else cons(“A”,x)
توابعی با اثرات جانبی (Side Effect)
rplaca rplacd
لیسپ از حلقه Read-eval-print استفاده می کند
فراخوانی تابع (function arg1 ... argn)
هر یک از آرگومانها ارزیابی می شوند
لیستی از مقادیر آرگومانها به تابع داده می شود
¨در بعضی از فراخوانی ها تمام آرگومانها ارزیابی نمی شوند
مثال (cond (p1 e1) (pn en
از چپ به راست پیش می رود
اولین pi با مقدار درست یافته می شود، ei مربوط به آن ارزیابی می شود
مثال: در (quote A) ، A ارزیابی نمی شود
شامل 32 اسلاید powerpoint
دانلود پاورپوینت LISP