Append
કોમ્પ્યુટર પ્રોગ્રામિંગમાં, એપેન્ડ એ કેટલીક ઉચ્ચ-સ્તરની પ્રોગ્રામિંગ ભાષાઓમાં લિંક કરેલી સૂચિઓ અથવા એરેને જોડવા માટેની કામગીરી છે. લિસ્પ એપેન્ડ પ્રોગ્રામિંગ ભાષા લિસ્પમાં ઉદ્દભવે છે. એપેન્ડ પ્રક્રિયા દલીલ તરીકે શૂન્ય અથવા વધુ (લિંક કરેલી) સૂચિઓ લે છે, અને આ સૂચિઓનું સંયોજન પરત કરે છે. (પરિશિષ્ટ '(1 2 3)' (a b) '()' (6)); આઉટપુટઃ (1 2 3 a b 6) કારણ કે પરિશિષ્ટ પ્રક્રિયાએ છેલ્લી સિવાયની તેની તમામ દલીલોની સંપૂર્ણ નકલ કરવી આવશ્યક છે, તેથી તત્વોની સૂચિ માટે તેનો સમય અને અવકાશ જટિલતા બંને O (n) છે. જો કોડમાં અયોગ્ય રીતે ઉપયોગ કરવામાં આવે તો તે બિનકાર્યક્ષમતાનો સ્ત્રોત બની શકે છે. એન. સી. એન. સી. પ્રક્રિયા (જેને એપેન્ડ કહેવાય છે! યોજનામાં) એ એપેન્ડ તરીકે સમાન કાર્ય કરે છે, પરંતુ વિનાશક રીતેઃ તે દરેક દલીલના સી. ડી. આર. ને બદલે છે (છેલ્લું સાચવો), તેને આગામી સૂચિ તરફ નિર્દેશ કરે છે. અમલીકરણ પરિશિષ્ટને સરળતાથી વિપક્ષની દ્રષ્ટિએ પુનરાવર્તિત રીતે વ્યાખ્યાયિત કરી શકાય છે. ફક્ત બે દલીલો માટે યોજનામાં નીચેનું એક સરળ અમલીકરણ છેઃ (એપેન્ડ (lambda (ls1 ls2) વ્યાખ્યાયિત કરો (જો (નલ? ls1) ls2 (વિપક્ષ (કાર ls1) (પરિશિષ્ટ (cdr ls1) ls2)))) પરિશિષ્ટને ફોલ્ડ-રાઈટનો ઉપયોગ કરીને પણ લાગુ કરી શકાય છેઃ (પરિશિષ્ટને વ્યાખ્યાયિત કરો (lambda (a b) (ફોલ્ડ-રાઈટ વિપક્ષ b a)) અન્ય ભાષાઓ લિસ્પને અનુસરીને, અન્ય ઉચ્ચ-સ્તરની પ્રોગ્રામિંગ ભાષાઓ કે જે લિંક કરેલી સૂચિને આદિમ ડેટા સ્ટ્રક્ચર્સ તરીકે દર્શાવે છે તેણે પરિશિષ્ટ અપનાવ્યું છે. યાદીઓ ઉમેરવા માટે, સંચાલક તરીકે, હાસ્કેલ + + નો ઉપયોગ કરે છે, ઓસીએએમએલ @નો ઉપયોગ કરે છે. અન્ય ભાષાઓ સ્ટ્રિંગ, સૂચિ અથવા એરેને બિન-રચનાત્મક રીતે જોડવા માટે + અથવા + + પ્રતીકોનો ઉપયોગ કરે છે. પ્રોલોગ લોજિક પ્રોગ્રામિંગ લેંગ્વેજ પ્રોલોગ બિલ્ટ-ઇન એપેન્ડ વિધેય ધરાવે છે, જે નીચે પ્રમાણે અમલમાં મૂકી શકાય છેઃ એપેન્ડ ([], Ys, Ys). પરિશિષ્ટ ([X|Xs], Ys, [X|Zs]):-પરિશિષ્ટ (Xs, Ys, Zs). આ વિધેયનો ઉપયોગ ઉમેરવા માટે થઈ શકે છે, પણ યાદીઓને અલગ કરવા માટે પણ થઈ શકે છે. કૉલિંગ?-પરિશિષ્ટ (L, R, [1,2,3]). ઉકેલો મળે છેઃ L = [], R = [1,2,3]; L = [1,2], R = [3]; L = [1,2,3], R = [3]; L = [1,2,3], R = [] મિરાન્ડા મિરાન્ડામાં, હ્યુજીસ (1989:5-6) માંથી આ જમણી બાજુ, બે દલીલો માટે, ઉપરની યોજનાના અમલીકરણની જેમ જ શબ્દાર્થ (ઉદાહરણ તરીકે) ધરાવે છે. એપેન્ડ a b = રિડ્યુસ કોન્સ b a જ્યાં રિડ્યુસ એ ફોલ્ડ માટેનું મિરાન્ડાનું નામ છે, અને કોન્સ બે મૂલ્યો અથવા સૂચિમાંથી સૂચિ બનાવે છે. ઉદાહરણ તરીકે, ઉમેરવું [1,2] [3,4] = ઘટાડવું વિપક્ષ [3,4] [1,2] = (ઘટાડવું વિપક્ષ [3,4]) (વિપક્ષ 1 (વિપક્ષ 2 શૂન્ય)) = વિપક્ષ 1 (વિપક્ષ 2 [3,4]) (વિપક્ષને વિપક્ષ અને શૂન્ય દ્વારા બદલવું [3,4]) = [1,2,3,4] હાસ્કેલમાં, આ જમણી-ગડી ઉપરની યોજનાના અમલીકરણ જેવી જ અસર ધરાવે છેઃ ઉમેરવુંઃઃ [a]-> [a]-> [a] પરિશિષ્ટ xs ys = ફોલ્ડર (:) ys xs આ અનિવાર્યપણે હાસ્કેલના + + સંચાલકનું પુનઃ અમલીકરણ છે. પર્લમાં, પુશ ફંક્શન એપેન્ડ પદ્ધતિની સમકક્ષ છે, અને તેનો ઉપયોગ નીચેની રીતે કરી શકાય છે. મારું @list; દબાણ @list, 1; દબાણ @list, 2,3; અંતિમ પરિણામ એ [1,2,3] ધરાવતી સૂચિ છે, અનશિફ્ટ ફંક્શન મારા @list ના અંતને બદલે સૂચિની આગળના ભાગમાં જોડાય છે; અનશિફ્ટ @list, 1; અનશિફ્ટ @list, 2,3; અંતિમ પરિણામ એ ફાઇલ ખોલતી વખતે [2,3,1] ધરાવતી સૂચિ છે, વધુ લખવાને બદલે ઉમેરવા માટે ">>" મોડનો ઉપયોગ કરો. ખોલો (મારું $fh, '>>', "/કેટલાક/ફાઈલ. ટી. એક્સ. ટી"); પ્રિન્ટ કરો $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,3] l.append (3) અહીં, પરિણામ એ [1,2,3] ધરાવતી સૂચિ છે. બેશ ઇન બેશ એપેન્ડ રીડાયરેક્ટ એ કોઈ વસ્તુમાં સ્ટ્રીમ ઉમેરવા માટે ">>" નો ઉપયોગ છે, જેમ કે શેલ આદેશોની નીચેની શ્રેણીમાંઃ ઇકો હેલો વર્લ્ડ! > લખાણ; વિશ્વને અલવિદા કહો! >> લખાણ; બિલાડી લખાણ પ્રવાહ "ગુડબાય વર્લ્ડ!" પ્રથમ આદેશમાં લખેલી લખાણ ફાઇલમાં ઉમેરવામાં આવે છે. ";" એ આપેલ આદેશોનો અમલ ક્રમમાં સૂચવે છે, એક સાથે નહીં. તેથી, ટેક્સ્ટ ફાઇલની અંતિમ સામગ્રી છેઃ સંદર્ભો પરિશિષ્ટનું વર્ણન. કાર્યાત્મક પ્રોગ્રામિંગ લિસ્પ (પ્રોગ્રામિંગ લેંગ્વેજ) પ્રોગ્રામિંગ ઉદાહરણ કોડ સાથે લેખો બનાવે છે ઉદાહરણ તરીકે હાસ્કેલ કોડ સાથે લેખો ઉદાહરણ તરીકે પર્લ કોડ સાથે લેખો ઉદાહરણ તરીકે પાયથોન (પ્રોગ્રામિંગ લેંગ્વેજ) સાથે લેખો IBM PC સુસંગતતા પર DOS કોડ