Append
کمپیوٹر پروگرامنگ میں، اپینڈ کچھ اعلی سطحی پروگرامنگ زبانوں میں منسلک فہرستوں یا صفوں کو یکجا کرنے کا عمل ہے۔ Lisp اپینڈ کی ابتدا پروگرامنگ زبان Lisp سے ہوتی ہے۔ ضمیمہ کا طریقہ کار صفر یا اس سے زیادہ (منسلک) فہرستوں کو دلائل کے طور پر لیتا ہے، اور ان فہرستوں کا مجموعہ واپس کرتا ہے۔ (اپینڈ '(1 2 3)' (a b) '()' (6)) ؛ آؤٹ پٹ: (1 2 3 a b 6) چونکہ اپینڈ کے طریقہ کار کو آخری کے علاوہ اپنے تمام دلائل کو مکمل طور پر کاپی کرنا ہوگا، اس لیے عناصر کی فہرست کے لیے اس کا وقت اور جگہ کی پیچیدگی دونوں O (n) ہیں۔ اس طرح اگر کوڈ میں ناجائز طور پر استعمال کیا جائے تو یہ ناکارہ ہونے کا باعث بن سکتا ہے۔ این سی او این سی طریقہ کار (جسے اپینڈ کہا جاتا ہے! اسکیم میں) وہی فنکشن انجام دیتا ہے جو اپینڈ کرتا ہے، لیکن تباہ کن طور پر: یہ ہر دلیل کے سی ڈی آر کو تبدیل کرتا ہے (آخری کو محفوظ کریں)، اسے اگلی فہرست کی طرف اشارہ کرتا ہے۔ نفاذ ضمیمہ کو نقصانات کے لحاظ سے آسانی سے بار بار بیان کیا جا سکتا ہے۔ اسکیم میں مندرجہ ذیل عمل درآمد ایک سادہ عمل ہے، صرف دو دلائل کے لیے: (ضمیمہ کی وضاحت کریں (lambda (ls1 ls2) (اگر (null? ls1) ls2 (موافق (کار ls1) (ضمیمہ (cdr ls1) ls2))) ضمیمہ کو فولڈ-رائٹ کا استعمال کرتے ہوئے بھی لاگو کیا جا سکتا ہے: (ضمیمہ اپینڈ (lambda (a b) (فولڈ-رائٹ موافق b a)) دیگر زبانیں Lisp کے بعد، دیگر اعلی سطحی پروگرامنگ زبانیں جو منسلک فہرستوں کو ابتدائی ڈیٹا ڈھانچے کے طور پر پیش کرتی ہیں، نے ایک ضمیمہ اپنایا ہے۔ فہرستوں کو شامل کرنے کے لیے، ایک آپریٹر کے طور پر، ہاسکل + + استعمال کرتا ہے، او سی اے ایم ایل @استعمال کرتا ہے۔ دوسری زبانیں + یا + + علامتوں کا استعمال کسی تار، فہرست، یا صف کو غیر تعمیری طور پر جوڑنے کے لیے کرتی ہیں۔ پرولاگ منطق پروگرامنگ زبان پرولاگ میں ایک بلٹ ان اپینڈ پریڈیکیٹ ہے، جسے مندرجہ ذیل طریقے سے لاگو کیا جا سکتا ہے: اپینڈ ([]، Ys، Ys)۔ ضمیمہ ([X|Xs]، Ys، [X|Zs]):-ضمیمہ (Xs، Ys، Zs)۔ اس پیشن گوئی کو شامل کرنے کے لیے استعمال کیا جا سکتا ہے، بلکہ فہرستوں کو الگ کرنے کے لیے بھی استعمال کیا جا سکتا ہے۔ کالنگ؟-اپینڈ (L، R، [1,2,3])۔ حل فراہم کرتا ہے: L = []، R = [1، 2، 3] ؛ L = [1، 2]، R = [2، 3] ؛ L = [1، 2]، R = [3] ؛ L = [1، 2، 3]، R = [] مرانڈا مرانڈا میں، ہیوزز (1989:5-6) سے یہ دائیں گنا، وہی الفاظ (مثال کے طور پر) رکھتا ہے جو دو دلائل کے لیے اوپر اسکیم کے نفاذ کے طور پر ہے۔ جہاں کم کرنا فولڈ کے لیے مرانڈا کا نام ہے، اور نقصانات دو اقدار یا فہرستوں سے ایک فہرست بناتے ہیں۔ مثال کے طور پر، اپینڈ [1,2] [3,4] = کم کنس [3,4] [1,2] = (کم کنس [3,4]) (کنس 1 (کنس 2 نیل)) = کنس 1 (کنس 2 [3,4]) (کنس اور نیل سے کنس کی جگہ [3,4]) = [1,2,3، 4] ہاسکل میں، اس رائٹ فولڈ کا وہی اثر ہوتا ہے جو اوپر اسکیم کے نفاذ پر ہوتا ہے: اپینڈ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: پرل میں، پش فنکشن اپینڈ طریقہ کے مساوی ہے، اور اسے درج ذیل طریقے سے استعمال کیا جا سکتا ہے۔ میرا @list ؛ دبائیں @list، 1 ؛ دبائیں @list، 2، 3 ؛ حتمی نتیجہ ایک فہرست ہے جس میں [1، 2، 3] پر مشتمل ہے ان شفٹ فنکشن فہرست کے اگلے حصے میں شامل ہوتا ہے، بجائے اس کے کہ میرا @list ؛ ان شفٹ @list، 1 ؛ ان شفٹ @list، 2، 3 ؛ حتمی نتیجہ ایک فہرست ہے جس میں [2، 3، 1] فائل کھولتے وقت، زیادہ لکھنے کے بجائے ">>" موڈ کا استعمال کریں۔ کھولیں (میرا $fh، '>>'،/کچھ/فائل. txt) ؛ پرنٹ کریں $fh "کچھ نیا متن \n" ؛ بند کریں $fh ؛ نوٹ کریں کہ فائل کے ہینڈلز کو کھولتے اور بند کرتے وقت، ہمیشہ واپسی کی قیمت چیک کرنی چاہیے۔ ازگر میں، فہرستوں کو شامل کرنے کے لیے فہرست کا طریقہ "توسیع" یا انفکس آپریٹرز + اور + = استعمال کریں۔ l = [1,2] l.extend ([3,4,5]) پرنٹ l + [6,7] اس کوڈ کو انجام دینے کے بعد، l ایک فہرست ہے جس میں [1,2,3,4,5] شامل ہے، جبکہ پیدا شدہ آؤٹ پٹ فہرست [1,2,3,4,5,6,7] ہے۔ فہرست کے طریقہ کار "اپینڈ" کے ساتھ الجھن میں نہ پڑیں، جو فہرست میں ایک عنصر کا اضافہ کرتا ہے: l = [1,2] l.append (3) یہاں، نتیجہ ایک فہرست ہے جس میں [1,2,3] شامل ہے۔ بش میں ضمیمہ ری ڈائریکٹ کسی چیز میں اسٹریم شامل کرنے کے لیے ">>" کا استعمال ہے، جیسے شیل کمانڈوں کی مندرجہ ذیل سیریز میں: ایکو ہیلو ورلڈ! > متن ؛ الوداع دنیا! >> متن ؛ بلی متن سلسلہ "الوداع دنیا!" پہلی کمانڈ میں لکھی گئی ٹیکسٹ فائل میں شامل کیا جاتا ہے۔ "؛" سے مراد دی گئی کمانڈوں کو ترتیب میں انجام دینا ہے، بیک وقت نہیں۔ لہذا، ٹیکسٹ فائل کا حتمی مواد یہ ہے: حوالہ جات ضمیمہ کی تفصیل۔ فنکشنل پروگرامنگ Lisp (پروگرامنگ زبان) پروگرامنگ مثال کے کوڈ کے ساتھ مضامین کی تعمیر کرتا ہے مثال کے طور پر Haskell کوڈ کے ساتھ مضامین مثال کے طور پر Perl کوڈ کے ساتھ مضامین مثال کے طور پر IBM PC مطابقت پر پائیتھن (پروگرامنگ زبان) کوڈ DOS کے ساتھ مضامین