לא מקנא במי שיצטרך לקרוא את הקוד הזה

יבגניי34

New member
contrast to python ...

קוד:
def meme(func):
...     cache = {}
...     def wrapper(*args):
...             if args not in cache: cache[args] = func(*args)
...             return cache[args]
...     return wrapper

>>> @meme
... def test(n):
...     print('calling', n)
...     return n ** 2
...
>>> test(2)
('calling', 2)
4
>>> test(2)
4

כמובן יש פה כל מני בעיות אבל... לפחות זה קצר
 

BravoMan

Active member
לא מבין אנשים כמוך...

שנים ע"ג שנים אנשים בכו ש-Java גרועה כי היא שפה פשוטה מידי וחסרים בה פיצ'רים מתקדמים.
&nbsp
עכשיו פתאום מוסיפים לה כל מיני פי'צרים מתקדמים ואנשים מתחילים לבכות שזה יוצר קוד לא קריא.
&nbsp
לא למדנו כלום מ-C מול ++C???
 

Grosseto

New member
הבעיה זה לא הקריאות

הבעיה היא עם הבעיות הרגשיות שמבנה כזה מייצר למתכנתים, מה גם שזה לא מביא תועלת אלא רק מסבך את העניינים
 

TakeCtrl

New member
תאמין לי אני מאוד מאוד מאושר מfunction Ptr (לא בציניות)

ואני את הפריניציפ שלה, אבל אם אני לא למנגנון כזה מוצמד javadoc עצבני שמסביר על ולמה זה נוצר זה מועמד ראשון לניפוי .
&nbsp
מה גם שכמעט בטוח שיש תשתיות שיצרו (או ייצרו לכזה דבר) .. זה נראה לי מעין cache לפונקציות...
 

BravoMan

Active member
גם אני הבנתי שמדובר ב-cache לפונקציות, וזה לא חדש.

למדתי על תכנות משחקים בתקופה של בין 286 ל-586. איך כתבו דברים כמו Wolfenstine המקורי ו-DOOM, לפני מאיצים גרפיים ייעודיים, ריבוי ליבות, OpenGL ושאר ירקות.
&nbsp
היית תקופה, שחישובי נקודה צפה היו דבר כ"כ יקר, שבשביל סינוס וקוסינוס השתמשו בטבלה בזיכרון במקום לנסות לחשב.
&nbsp
היום מצב החומרה שונה, ויש דברים שמהר יותר לחשב מחדש מאשר לשלוף מ-RAM, אבל עדיין אני בטוח שניתן למצוא מקום לעשות caching לתשובות של חישובים ארוכים במיוחד.
&nbsp
אל תשכח שדי הגענו למגבלת מהירות שעון של מעבדים בטכנולוגיה קונבנציונלית, וכל השיפורים במהירות ביצוע היום הם "תכסיסים" של אופטימיזציות, caching, מיקבול וכו'.
&nbsp
אז אני לא מבין מה הבעיה הספציפית שלך עם הפיצ'ר הזה.
&nbsp
די רפרפתי על המאמר, אבל הקוד שם לא כ"כ מכוער.
הדוגמאות מופשטות בכוונה.
&nbsp
ראיתי קוד הרבה יותר מכוער ב-JS בשביל דברים פשוטים הרבה יותר.
וראיתי גם אנשים מתווכחים האם Singleton הוא Pattern או Anti pettern.
&nbsp
ראיתי גם וויכוח בין אסכולה קיצונית של "כל שורה היא פונקציה בפני עצמה וככה הקוד מתעד את עצמו" לבין "אפשר לדחוף הכל בפונקציה אחת, ולהפריד רק ברמה גבוהה".
&nbsp
כן זה בסה"כ עוד פיצ'ר - עוד כלי. אין בו כל רע, כל עוד תשכיל להשתמש בו מתי שצריך.
 

יבגניי34

New member
lookups are still partially used for the trigs

Look here and follow the trail to __sincostable
good friday night read...

Ofcourse the lookup is just for the first term of the expansion.
 
למעלה