قبل أيام قليلة طرحت سؤالا, وفي ذلك السؤال, كانت هذه الدالة موجودة:
الدالة مدخل (سؤال ۢحرف) ۢحرف {
المتغير جواب ۢحرف := ذاكرة::تخصيص(1024ط)
شاشة::تعطيل_التخزين()
شاشة::اكتب(سؤال)
شاشة::اقرا(؏جواب)
ارجع جواب
}
ما يهمني هنا هو جواب قام بإرساله أحد ما:
> المصفوفة جواب تم اعلانها محليا داخل الدالة ، مما يعني ان الذاكرة المحجوزة لها ستختفي بمجرد نهاية الدالة
ولكن هذا ليس صحيحا في لغات أخر مثل Python و #C. هنا مثال:
#C:
public static void Main (string[] args) {
string a = input();
Console.WriteLine (a);
}
static string input() {
string a = "Return this";
return a;
}
وإذا جربتم تنفيذ هذه الشفرة, فلن ينتهي ذاكرة المتغير داخل الدالة input
.
ونفس الشيء في Python.
إذا, السؤال, كيف يكون النطاق في لغة الخوارزم؟ ولماذا يختلف عن باقي اللغات في هذا الشأن؟