פרויקט pyLisp-NG הוא צאצא מיידי של PyLisp, שהייתה לידה בשוגג שלה כתוצאה מרצונם של ויליאם Annis לבנות תחביר קליפים כמו למערכת מומחה פשוטה המיועדת לכלי הניטור & nbsp;. כ תוצאה של עניין Lisp על קבוצת חדשות פייתון, ויליאם שוחרר התוכנה והודיעה לקבוצה.
כמה שנים מאוחר יותר, פרויקטי Evolver וtxEvolver צורך יישום שפת תכנות פונקציונלי בפייתון, כבדיקת AST של פייתון הייתה יותר מדי טרחה. המחבר רצה להפיץ, תהליך, ולנהל את אלגוריתמים / תוכניות האבולוציוני בין שרתי Twisted המרוחק מרובים, ותמורות מניפולציה של תוכניות חלקיות היו הרבה יותר קלה לשלב עם סבבה אם התוכניות עצמן יכולות להיות מוערכות וintrospected בקלות עם פייתון.
pyLisp-NG יורש charaateristics הייחודי של PyLisp. לדוגמא, בוליאנים הם אמת ושקר וזה לא פעל הכנס שכל מה שאינו מזויף הוא אמיתי (משותף לזמזומים רבים). למעשה, כל בוליאנים בpyLisp-NG מבוססים על היגיון מטושטש, כך שאתה יכול לעשות דברים יותר מסובך. מאקרו, די מוזר, אובייקטים במחלקה הראשונה בPyLisp שאולי רומן לזמזומים:
Lisp> (setq foo 22)
22
Lisp> ((מאקרו (x) '(setq, x (, x 1 foo +))))
23
pyLisp-NG, כמו קודמתה, אין לו כוונה של נעשה כל יישום במלוא מובן המילה, חזק Lisp. כל ההתקדמות תחול אך ורק העניין של תרומה למפתחים; עכשיו, זה אך ורק לשימוש ככלי תכנות גנטי.
התקנה:
pyLisp-NG הוא setuptools ידידותי; אתה יכול להתקין אותו עם הפעולות הבאות:
& Nbsp; $ easy_install pyLisp-NG
גם אתה יכול לקבל את קוד מקור המלא מLaunchpad:
& Nbsp; LP bzr $: pylisp-ng
האפשרות השנייה מעודדת מאוד עבור משתמשים מעוניינים, כמאגר מכיל קבצים נוספים שאינם כלולים בארכיבים ditribution (כגון רץ הבדיקה וutils מבחן).
שימוש:
כדי להשתמש בinterpretter מלקוחות מלאים, לעשות את זה:
& Nbsp; CD $ <ספריית סניף> $ ./bin/pylisp-ng
אם התקנת עם easy_install, וספריית תסריטי פייתון שלך היא בנתיב שלך, כל מה שאתה צריך לעשות הוא זה:
& Nbsp; $ pylisp-ng
בשלב זה, תוכל להיכנס לביטויי Lisp:
Lisp> ((למבדה (x) (* x x)) 2)
4
Lisp>
אתה יכול להשתמש בקוד של הביטוי מפייתון:
>>> מLisp יבוא pylispng
>>> L = lisp.SExpression ('((למבדה (x) (* xx) 2)) ")
>>> Str (L)
'((למבדה (x) (* x x)) 2) "
>>> L.eval ()
4
בניית סמל אחד ביטוי בזמן או על ידי הוספת נתחים בכל פעם:
>>> L = lisp.SExpression ()
>>> L.append ("+")
>>> L.append ('3')
>>> L.append ('5')
>>> L.append ('(* 3 3) ")
>>> Str (L)
'(+ 3 5 (* 3 3)) "
אתה יכול לבחון את המאפיינים שונים של S-הביטוי:
>>> L.eval ()
17
>>> L.getDepth ()
2
>>> Len (L)
4
>>> L.getSize ()
2
תכונות :.
- ניב Lisp זעיר, קל לשילוב בפרויקטי פייתון אחרים
- כולל מתורגמן Lisp אינטראקטיבי.
- התבוננות פנימית ביטוי שתוכננה במיוחד לשימוש בתכנות גנטי.
מה חדש בהודעה זו
- קוד התבוננות פנימית נוסף ששימושי עבור תכנות גנטי. >
- זוג תיקוני באגים קטנים וכמה ניקוי קוד.
דרישות :
- פייתון
תגובות לא נמצא