|
||||
|
||||
לא יצא לי, אבל אולי כן אפשר לבצע השוואה כלשהי: התחלתי בעבר ללמוד smalltalk ונשברתי די מהר - עד כמה ש-if שהוא אובייקט הוא דבר מגניב, זה בעיקר מרגיש מסורבל - ואילו ברובי התאהבתי מהרגע הראשון. אני מניח שעכשיו אני כבר מוכן ל"סיבוב שני" עם smalltalk, ואנסה לדווח בעתיד על התוצאות. |
|
||||
|
||||
ב-smalltalk זה לא ש-if הוא אובייקט אלא שהוא מתודה (הודעה) של כל מחלקה. הבלוק שיש לבצע (שהוא בעצם פונקציה אנונימית), הוא האובייקט. כל המושג של בלוקים/פונקציות אנונימיות היה קשה לי להבנה בתחילה, כמו ב-Lisp. אחר כך התרגלתי. אולי הגיע הזמן שאקח את רובי לסיבוב (אולי אפילו On Rails!). |
|
||||
|
||||
איך קרה שדיון בשבוע הספר הפך לדיון ב-ruby? ערן - ממליץ בחום לקחת את רובי לסיבוב, אבל בזהירות. אני נדבקתי בחידק, מה שגרם לי בסופו של דבר לעזוב את העבודה כי לא יכולתי יותר לראות java מול העיניים, ולהקים סטארט-אפ בין היתר כדי שאוכל לקודד בכיף ב-ruby... אתה יכול לחשוב עליה כמשהו קרוב מספיק ל-lisp כדי להיות מוצלח, אבל עם סיכוי טוב להצלחה מסחרית. |
|
||||
|
||||
מה שיפה בדיונים באייל זו האסוציאטיביות הזו, שבה אתה יודע איפה דיון מתחיל, אבל לא יודע לאן הוא יכול להגיע :) |
|
||||
|
||||
You mentioned associations... Look for Topic Maps.
|
|
||||
|
||||
הממ, לא זכרתי טוב, ועכשיו בלבלת אותי עוד יותר - אתה בטוח שהאובייקט הוא לא ערך ה-true/false, והבלוק הוא הפרמטר לפונקציה? אגב, ככה גם רובי עובד - לכל פונקציה אפשר להעביר בלוק/פונקציה אנונימית, וכך גם מממשים איטרטורים. הסינטקס די דומה לזה של smalltalk אבל לדעתי קצת יותר קריא. הנה דוגמה שאני מחבב לקוד ברובי, במקרה הזה שמדפיסה את 1,000 מספרי פיבונאצ'י הראשונים: x=y=1 והנה דוגמה לאיטרטור שלוקח מערך של ערכי x, מפעיל פונקציה f עליהם ומחזיר מערך y של התוצאות:1000.times {x,y=y,x+y; puts x} y=x.collect {|x_value| f(x_value)} אין לי ספק שגם בשפות אחרות יש מבנים דומים, אבל אני תוהה בכמה מהשפות שהן לא ב-Cluster של רובי (כדוגמת פייתון וסמולטוק) זה קריא ואלגנטי בצורה דומה.
|
|
||||
|
||||
הלכתי לבדוק. אם אני מבין נכון את מה שמצאתי כאן: אז האובייקט הוא מופע (יחיד) של תת-מחלקה של Boolean - או True או False. כל אחת מהן מממשת את ההודעות ifTrue ו-IfFalse ושילובים של השתיים (אשר מוצהרות כבר ב-Boolean), כשכל הודעה מקבלת כפרמטר בלוק (או שניים). הנה דוגמה לתחביר (מתוך הערך בוויקיפדיה): result := a > b
ifTrue:[ 'greater' ] ifFalse:[ 'less' ] |
|
||||
|
||||
טוב, עשית לי חשק, ועוד לא גמרתי ללמוד פייתון. תתבייש לך. |
|
||||
|
||||
נו, ואני אפילו עוד לא התחלתי ללמוד פייתון. בוש והיכלם. |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |