תוכן שנמחק תוכן שנוסף
Jona1357 (שיחה | תרומות)
אין תקציר עריכה
Jona1357 (שיחה | תרומות)
אין תקציר עריכה
שורה 24:
 
== כתיבת קוד ב-Common Lisp ==
 
=== אופרטורים אריתמטיים ===
ארבעת האופרטורים האריתמטיים המשמעותיים ביותר ב-Common Lisp, ובניבי Lisp בכלל, הם חיבור <code>+</code> , חיסור <code>-</code> , כפל <code>*</code> , וחילוק <code>/</code> .
 
אמנם אופרטורים אלה הם חלק אינטגרלי ממתמטיקה ואריתמטיקה בסיסית, וקיימים בכלל שפות התכנות, במשפחת Lisp צורת הכתיבה שלהם שונה. ב-Lisp ישנו שימוש בכתיב תחילי, כלומר, האופרטורים והפעולות בה מופיעים בהתחלה, ושאר האיברים בביטוי הם האופרנדים, או הפרמטרים בהתאמה. באופרטורים ופעולות מובנות רבות אין מגבלה לכמות האופרנדים שניתן להכניס, כלומר, חיבור,חיסור, כפל וחילוק למשל, אינן פעולות בינאריות ב-Lisp. לדוגמה, על מנת לבצע את הפעולה האריתמטית <math>2 * 3 + 7 - 6</math>, נכתוב את הקוד הבא:<syntaxhighlight lang="common-lisp">
( - (+ (* 2 3) 7) 6 )
</syntaxhighlight>כל ביטוי בתוך סוגריים נקרא ביטוי סימבולי ( Symbolic Expression ) והוא מפושט לתוצאתו, אלא אם כן יכתב לפניו גרש <code>׳</code>.
 
=== פעולות min ו-max ===
<code>max</code> ו-<code>min</code> מקבלים מספר בלתי מוגבל של אופרנדים, והביטוי מפושט למספר הכי גדול / הכי קטן בהתאמה.
 
למשל, <code>(max 35 74 23 29 71)</code> יפושט ל-<code>74</code>, מפני שהוא המספר הגדול ביותר מבין האופרנדים. לעומת זאת, <code>min 35 74 23 29 71)</code> יפושט ל-<code>23</code>
 
=== התניות ===
שורה 50 ⟵ 62:
[[קובץ:Singly-linked-list.svg|ממוזער|304x304 פיקסלים|Singly-linked-list]]
 
# '''שימוש במילה השמורה''' <code>cons</code>''':''' בשיטה זו, מגדירים את הרשימה המקושרת באופן רקורסיבי. cons מקבל שני אופרנדים : הערך שבחוליה, והפניה לאיבר הבא. הרשימה נגמרת כאשר ההפניה לאיבר הבא היא <code>NIL</code> - כלום ( ההקבלה ל <code>null</code>, או <code>false</code> בשפות תכנות אחרות) דוגמה להגדרה של רשימה מקושרת בעלת איבר אחד ב-Common Lisp :
<syntaxhighlight lang="common-lisp">
(cons 5 nil)
שורה 62 ⟵ 74:
(cons 16 (cons 22 (cons 43 (cons 82 (cons 41 (cons 93 nil))))))
</syntaxhighlight>הרשימה תכיל <code>( 93 41 82 43 22 16 )</code>.
 
2.'''שימוש במילה השמורה''' <code>list</code>''':''' הדרך הקלה יותר ליצור רשימות מקושרות ב-Common Lisp ובניבי Lisp אחרים היא להשתמש בהוראת ה-<code>list</code>. לדוגמה:<syntaxhighlight lang="common-lisp">
(list 75 21 43 'hello 'world 98)
</syntaxhighlight>
 
=== פעולות ===
שורה 74 ⟵ 90:
(* number1 number1)
)
</syntaxhighlight>דוגמה לפעולה [[רקורסיה|רקורסיבית]] אשר מחשבת עד [[סכום]] המספרים מ-0 עד למספר הנתון, כלומר, עבור פרמטר n : ( <math>{ 1+2+3\cdots+n }</math> , או בכתיב מתמטי :<math>\textstyle \sum_{k=0}^N \displaystyle</math>) ומקבלת רק מספרים אי שליליים ושלמים:<syntaxhighlight lang="common-lisp">
(defun sum_to( num1 )
( if ( eq num1 0 )
שורה 99 ⟵ 115:
 
==קישורים חיצוניים==
{{ויקישיתוף בשורה}}'''[https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node1.html Common Lisp the Language, 2nd Edition]'''
 
[https://www.cs.cmu.edu/~dst/LispBook/book.pdf Common LISP: A Gentle Introduction to Symbolic Computation]
* {{אתר רשמי}}