תכנות פונקציונאלי

תכנות פונקציונאלי

אני כותבת פרוייקט בתכנות פונקציונאלי. יש לי בעיה בפונקציית update. המשחק הוא איקס עיגול. ופונקציה זו מקבלת לוח board מספר שורה l מספר עמודה m וערך x ומחזירה את הלוח, כאשר במשבצת בשורה l ובעמודה m הוחלף הערך ל-x. תעזרו לי בבקשה..............
 

theguyman

New member
לא ראיתי ממש את הקוד

אבל אני מניח שאת מחזירה 3 רשימות, בעלות 3 איברים. מה הבעיה באמת, לשלוף את השורה/רשימה המתאימה ומתוכך את האיבר המתאים ולעדכן, ולהחזיר לוח חדש?
 

theguyman

New member
עברו יותר מ-5 שנים

מאז שעשיתי משהו בשפה הזו. וטוב שכך. מה בדיוק קורה שאת מפעילה את הפונקציה המדוברת. קראתי את מה שכתבת והיא נראית לי הגיונית, יש סיכוי שיש לך בעיה של אינדקס. שימי לב שאת עוצרת ב-1 ולא באפס?
 

danielthewhite

New member
אבל, אם היא תעצור באפס

לא ישארו לה שורות... ברשימות בscheme יש לך איבר ראשון, איבר שני, וכו'... אין לך איבר אפס...
 

danielthewhite

New member
אבל... תסתכל על הקוד...

התנאי הוא "אם l=1 תעביר לupdateline" כלומר, אם השורה הנוכחית היא השורה שאתה רוצה לעדכן. אם לא, אתה מוריד שורה, ומוריד אחד מl. אם היית עושה l=0 אז היית עוצר שורה אחרי השורה שרצית... ברור שאפשר להשתמש בl=0, במקרה שככה התוכנית מתייחסת ללוח, אבל במקרה הזה נראה שהיא מתייחסת ל1, ואז זאת לא שגיאה... בקיצור, שניהם נכונים באותה מידה, תלוי במה היא השתמשה בשאר התוכנית, שזה 1.
 

theguyman

New member
ברור.

מה שאתה אומר הוא נכון. השאלה היא אם היא בקריאות למתודה עושה זאת עם פרמטרים נכונים. ז"א שהיא רוצה את השורה השלישית היא כותבת 3 ולא 2 .
 

danielthewhite

New member
טוב... מכיוון ששנינו

מסכימים אחד עם השני, אין טעם להתווכח...
פשוט נחכה שהדרדסית תגיב ותגיד לנו למה היא התכוונה, ומה בעצם הבעייה...
 

danielthewhite

New member
טוב...

בעיקרון, הפונקציה update בסדר גמור. השאלה העיקרית שלי היא מה עושה הפונקציות bf ו first שבנית... קודם כל, לפי מיטב ידיעתי לscheme יש מילה שמורה first שעושה את מה שרצית, ומילה שמורה rest שעושה את מה שbf אמורה לעשות, ככה שלדרוס אותן עם פונקציה משלך נראה לי קצת טיפשי... חוץ מזה, מה פירוש cdr וcar בשתי הפונקציות האלה? מעולם לא נתקלתי בהם... תנסי למחוק את הפונקציה first שכתבת, ולהשתמש בrest במקום bf, ותגידי לי מה יצא.... מקווה שעזרתי דניאל
 
למעלה