ויקיפונקציות:איך ליצור מימושים
הדף הזה מספק מדריך מפורט יותר ליצירת מימושים, מעבר לסקירה הכללית בדף Wikifunctions:Introduction.
קוד בפייתון
בפרק הזה, אנחנו נותנים דוגמה מוחשית על יצירת מימוש בצורת קוד בפייתון. נניח שאנחנו רוצים ליצור מימוש לפונקציה שמאחדת שתי מחרוזות קלט על־ידי הוספת רווח ביניהן, ומחזירה את התוצאה של זה. נניח שמזהה ה־Z של הפונקציה הזאת הוא Z11057.
התיאור הזה תקף רק במקרה שהמימוש משתמש במחרוזות ובבוליאנים כסוגי הקלט או הפלט. במקרה של שימוש בסוג אחר, יש לעיין בתיעוד על הסוג הנתון כדי ללמוד איך לשנות את הערכים כדי שיהיה אפשר להשתמש בהם בפייתון. אנו מתכננים להקל על כך בעתיד.
המימוש מוגדר באמצעות מזהה ה־Z של הפונקציה. כך גם הארגומנטים של הפונקציה. אז במקרה של פונקציה Z11057 עם שני הארגומנטים שלה, השורה הראשונה צריכה להיראות כך:
def Z11057(Z11057K1, Z11057K2):
לתשומת ליבך: אני מתכננים להסתיר את מזהה ה־Z בעתיד.
השורה הראשונה צריכה להיווצר באופן אוטומטי בשבילך אחרי שבחרת בפייתון בתור שפת התכנות. צריך רק להוסיף את גוף הפונקציה.
מתחת לזה, כותבים את הקוד בפייתון כרגיל. רק שהמשתנים נראים קצת מצחיקים. במקרה הזה הם יכולים להיות למשל:
return Z11057K1 + " " + Z11057K2
היות שזה פיתון, אל תשכחו להזיח את השורה הזאת.
אם כבר יש לך בדיקות (וזה הרגל טוב ליצור את הבדיקות תחילה), יש ללחוץ על החץ המעוגל בחלונית בדיקות ולראות אם המימוש שלך עובר את הבדיקות.
יש לזכור שלקוד בזמן הריצה אין מצב (state). אין להניח מה יהיו הערכים של משתנים גלובליים או סטטיים. אם יש לך שאלות נוספות לגבי מה אפשר ומה אי־אפשר לעשות בפייתון, אפשר לשאול בדף Wikifunctions:Python implementations.
קוד ב־JavaScript
בפרק הזה, אנחנו נותנים דוגמה מוחשית על יצירת מימוש בצורת קוד ב־JavaScript. נניח שאנחנו רוצים ליצור מימוש לפונקציה שמאחדת שתי מחרוזות קלט על־ידי הוספת רווח ביניהן, ומחזירה את התוצאה של זה. נניח שמזהה ה־Z של הפונקציה הזאת הוא Z11057.
התיאור הזה תקף רק במקרה שהמימוש משתמש במחרוזות ובבוליאנים כסוגי הקלט או הפלט. במקרה של שימוש בסוג אחר, יש לעיין בתיעוד על הסוג הנתון כדי ללמוד איך לשנות את הערכים כדי שיהיה אפשר להשתמש בהם ב־JavaScript. אנו מתכננים להקל על כך בעתיד.
המימוש מוגדר באמצעות מזהה ה־Z של הפונקציה. כך גם הארגומנטים של הפונקציה. אז במקרה של פונקציה Z11057 עם שני הארגומנטים שלה, השורה הראשונה צריכה להיראות כך:
function Z11057( Z11057K1, Z11057K2 ) {
לתשומת ליבך: אני מתכננים להסתיר את מזהה ה־Z בעתיד.
הקוד של המימוש צריך להסתיים בשורה שסוגרת את הסוגר המסולסל הפותח מהשורה הראשונה.
השורה הראשונה צריכה להיווצר באופן אוטומטי בשבילך אחרי שבחרת ב־JavaScript בתור שפת התכנות. צריך רק להוסיף את גוף הפונקציה.
בתוך הסוגריים המסולסלים, כותבים את הקוד ב־JavaScript כרגיל. רק שהמשתנים נראים קצת מצחיקים. במקרה הזה הם יכולים להיות למשל:
return Z11057K1 + " " + Z11057K2;
אם כבר יש לך בדיקות (וזה הרגל טוב ליצור את הבדיקות תחילה), יש ללחוץ על החץ המעוגל בחלונית בדיקות ולראות אם המימוש שלך עובר את הבדיקות.
יש לזכור שלקוד בזמן הריצה אין מצב (state). אין להניח מה יהיו הערכים של משתנים גלובליים או סטטיים. אם יש לך שאלות נוספות לגבי מה אפשר ומה אי־אפשר לעשות ב־JavaScript, אפשר לשאול בדף Wikifunctions:JavaScript implementations.
הרכבה
בפרק הזה נותנים דוגמה מוחשית על יצירת מימוש בצורת הרכבה (composition). נניח שאנחנו רוצים ליצור מימוש לפונקציה שמאחדת שתי מחרוזות קלט על־ידי הוספת רווח ביניהן, ומחזירה את התוצאה של זה. נניח שמזהה ה־Z של הפונקציה הזאת הוא Z11057.
בדרך־כלל כדאי לחשוב תחילה כיצד לשלב פונקציות קיימות כדי ליצור את הפלט הרצוי. לפעמים זה יכול להיות טריוויאלי, ואפשר פשוט להמשיך עם הרכבת פונקציות, אבל במקרים רבים כדאי לרשום מה ההרכבה הרצויה. ממשק ההרכבה של ויקיפונקציות עדיין לא טוב כל־כך בעריכת הרכבות, ולכן מומלץ קודם להבין מה בדיוק ברצונך ליצור.
למשל, עבור הפונקציה הנתונה, נוכל להשתמש בפונקציה לשרשור מחרוזות, שכבר קיימת. הפונקציה הזאת לוקחת שתי מחרוזות ויוצרת מהן מחרוזת אחת. אבל אנחנו צריכים להוסיף רווח ביניהן. אז תחילה אנו משרשרים רווח לקצה המחרוזת הראשונה, ולאחר מכן משרשרים את המחרוזת השנייה לתוצאה של השרשור הראשון הזה. אז אפשר לרשום את ההרכבה שלנו כך:
concatenate(concatenate(Z11057K1, " "), Z11057K2).
כדי ליצור את זה, צריך:
- להתחיל ליצור מימוש.
- תחת "מימוש", לבחור "הרכבה".
- ללחוץ על הכפתור האדום "נא לבחור פונקציה".
- לרשום את שם הפונקציה, כלומר "שרשור מחרוזות" ולבחור את זה כשזה מופיע ברשימת ההשלמה האוטומטית.
- הארגומנת הראשון של החיבור החיצוהי הוא הקריאה לפונקציה עצמה. כדי לעשות את זה, יש ללחוץ על ... ליד "מחרוזת ראשונה".
- יוצגו לך ארבע אפשרויות. יש לבחור "קריאה לפונקציה".
- עכשיו, יש לבחור את הפונקציה הפנימית. זה שוב "שרשור מחרוזות".
- הארגומנט "מחרוזת ראשונה" של ה"שרשור מחרוזות" הפנימי צריך להיות הארגומנט הראשון. אז צריך ללחוץ שוב על ... ליד "מחרוזת ראשונה".
- לבחור "התייחסות לארגומנט".
- לבחור את שם הארגומנט השני, "מחרוזת שנייה".
- בשדה הפנימי "מחרוזת שנייה" (לא החיצוני), יש להקליד תו רווח בודד.
- אם כבר יש לך בדיקות (וזה הרגל טוב ליצור את הבדיקות תחילה), יש ללחוץ על החץ המעוגל בחלונית בדיקות ולראות אם המימוש שלך עובר את הבדיקות.
- עכשיו צריך להוסיף את הארגומנט השני. עבור ארגומנט ה"מחרוזת שנייה השני", יש ללחוץ על ... לידו.
- לבחור "התייחסות לארגומנט".
- לבחור את שם הארגומנט השני, "מחרוזת שנייה".
- אם כבר יש לך בדיקות (וזה הרגל טוב ליצור את הבדיקות תחילה), יש ללחוץ על החץ המעוגל בחלונית בדיקות ולראות אם המימוש שלך עובר את הבדיקות.
אם ההרכבה עוברת את הבדיקות, אפשר לפרסם אותה.