قبل أيام قليلة طرحت سؤالا, وفي ذلك السؤال, كانت هذه الدالة موجودة:
الدالة مدخل (سؤال ۢحرف) ۢحرف {
المتغير جواب ۢحرف := ذاكرة::تخصيص(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.
إذا, السؤال, كيف يكون النطاق في لغة الخوارزم؟ ولماذا يختلف عن باقي اللغات في هذا الشأن؟