Append
ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ನಲ್ಲಿ, ಅನುಬಂಧವು ಕೆಲವು ಉನ್ನತ ಮಟ್ಟದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಲಿಂಕ್ ಮಾಡಲಾದ ಪಟ್ಟಿಗಳು ಅಥವಾ ಸರಣಿಗಳನ್ನು ಸಂಯೋಜಿಸುವ ಕಾರ್ಯಾಚರಣೆಯಾಗಿದೆ. ಲಿಸ್ಪ್ ಅಪ್ಪೆಂಡ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಲಿಸ್ಪ್ನಲ್ಲಿ ಹುಟ್ಟಿಕೊಂಡಿದೆ. ಅನುಬಂಧ ಪ್ರಕ್ರಿಯೆಯು ಶೂನ್ಯ ಅಥವಾ ಹೆಚ್ಚಿನ (ಲಿಂಕ್ ಮಾಡಲಾದ) ಪಟ್ಟಿಗಳನ್ನು ವಾದಗಳಾಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಈ ಪಟ್ಟಿಗಳ ಸಂಯೋಜನೆಯನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. (ಅನುಬಂಧ '(1 2 3)' (a b) '()' (6)); ಔಟ್ಪುಟ್ಃ (1 2 3 a b 6) ಅನುಬಂಧ ಪ್ರಕ್ರಿಯೆಯು ಕೊನೆಯದನ್ನು ಹೊರತುಪಡಿಸಿ ಅದರ ಎಲ್ಲಾ ವಾದಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಕಲಿಸಬೇಕಾಗಿರುವುದರಿಂದ, ಅಂಶಗಳ ಪಟ್ಟಿಗೆ ಅದರ ಸಮಯ ಮತ್ತು ಸ್ಥಳ ಸಂಕೀರ್ಣತೆ ಎರಡೂ O (n) ಆಗಿರುತ್ತವೆ. ಕೋಡ್ನಲ್ಲಿ ದುರುದ್ದೇಶಪೂರಿತವಾಗಿ ಬಳಸಿದರೆ ಅದು ಅಸಮರ್ಥತೆಯ ಮೂಲವಾಗಿರಬಹುದು. ಎನ್. ಸಿ. ಒ. ಎನ್. ಸಿ. ಕಾರ್ಯವಿಧಾನವನ್ನು (ಅಪೆಂಡ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ! ಯೋಜನೆಯಲ್ಲಿ) ಅನುಬಂಧದಂತೆಯೇ ಅದೇ ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ಆದರೆ ವಿನಾಶಕಾರಿಯಾಗಿಃ ಇದು ಪ್ರತಿ ವಾದದ ಸಿ. ಡಿ. ಆರ್ ಅನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ (ಕೊನೆಯದನ್ನು ಉಳಿಸಿ), ಅದನ್ನು ಮುಂದಿನ ಪಟ್ಟಿಗೆ ಸೂಚಿಸುತ್ತದೆ. ಅನುಷ್ಠಾನ ಅನುಬಂಧವನ್ನು ಅನಾನುಕೂಲತೆಗಳ ಪರಿಭಾಷೆಯಲ್ಲಿ ಪುನರಾವರ್ತಿತವಾಗಿ ಸುಲಭವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು. ಈ ಕೆಳಗಿನವು ಎರಡು ವಾದಗಳಿಗೆ ಮಾತ್ರ ಯೋಜನೆಯಲ್ಲಿ ಸರಳ ಅನುಷ್ಠಾನವಾಗಿದೆಃ (ಅನುಬಂಧವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ (ಲ್ಯಾಂಬ್ಡಾ (ಎಲ್ಎಸ್ 1 ಎಲ್ಎಸ್ 2)) (ಇಫ್ (ಶೂನ್ಯ? ls1) ls2 (ಕಾನ್ಸ್ (ಕಾರ್ ls1) (ಅಪ್ಪೆಂಡ್ (cdr ls1) ls2)))) ಅಪ್ಪೆಂಡ್ಅನ್ನು ಫೋಲ್ಡ್-ರೈಟ್ ಬಳಸಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದುಃ (ಅಪ್ಪೆಂಡ್ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ (ಲ್ಯಾಂಬ್ಡಾ (a b) (ಫೋಲ್ಡ್-ರೈಟ್ ಕಾನ್ಸ್ b a)) ಇತರ ಭಾಷೆಗಳು ಲಿಸ್ಪ್ನ ನಂತರ, ಲಿಂಕ್ ಮಾಡಲಾದ ಪಟ್ಟಿಗಳನ್ನು ಪ್ರಾಚೀನ ದತ್ತಾಂಶ ರಚನೆಗಳಾಗಿ ಹೊಂದಿರುವ ಇತರ ಉನ್ನತ ಮಟ್ಟದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಅಪ್ಪೆಂಡ್ಅನ್ನು ಅಳವಡಿಸಿಕೊಂಡಿವೆ. ಪಟ್ಟಿಗಳನ್ನು ಸೇರಿಸಲು, ನಿರ್ವಾಹಕರಾಗಿ, ಹಾಸ್ಕೆಲ್ + + ಅನ್ನು ಬಳಸುತ್ತಾರೆ, ಓ. ಸಿ. ಎ. ಎಂ. ಎಲ್ @ಅನ್ನು ಬಳಸುತ್ತದೆ. ಇತರ ಭಾಷೆಗಳು + ಅಥವಾ + + ಚಿಹ್ನೆಗಳನ್ನು ಸ್ಟ್ರಿಂಗ್, ಪಟ್ಟಿ ಅಥವಾ ರಚನೆಯನ್ನು ರಚನಾತ್ಮಕವಾಗಿ ಸಂಯೋಜಿಸಲು ಬಳಸುತ್ತವೆ. ತರ್ಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾದ ಪ್ರೊಲಾಗ್ ಒಂದು ಅಂತರ್ನಿರ್ಮಿತ ಅನುಬಂಧವನ್ನು ಹೊಂದಿದೆ, ಇದನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದುಃ ಅನುಬಂಧ ([], Ys, Ys). ಅನುಬಂಧ ([X|Xs], Ys, [X|Zs]):-ಅನುಬಂಧ (Xs, Ys, Zs). ಈ ಮುನ್ಸೂಚನೆಯನ್ನು ಸೇರಿಸಲು ಬಳಸಬಹುದು, ಆದರೆ ಪಟ್ಟಿಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಆಯ್ಕೆ ಮಾಡಲು ಸಹ ಬಳಸಬಹುದು. - ಅನುಬಂಧ (ಎಲ್, ಆರ್, [1,2,3]). ಪರಿಹಾರಗಳನ್ನು ನೀಡುತ್ತದೆಃ L = [], R = [1,2,3]; L = [1], R = [2,3]; L = [1,2], 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 = foldr (:) ys xs ಇದು ಮೂಲಭೂತವಾಗಿ ಹಾಸ್ಕೆಲ್ನ + + ಆಪರೇಟರ್ನ ಮರು ಅನುಷ್ಠಾನವಾಗಿದೆ. ಪರ್ಲ್ನಲ್ಲಿ, ಪುಶ್ ಕಾರ್ಯವು ಅಪೆಂಡ್ ವಿಧಾನಕ್ಕೆ ಸಮನಾಗಿರುತ್ತದೆ ಮತ್ತು ಇದನ್ನು ಈ ಕೆಳಗಿನ ರೀತಿಯಲ್ಲಿ ಬಳಸಬಹುದು. ನನ್ನ @list; ಪುಶ್ @list, 1; ಪುಶ್ @list, 2,3; ಅಂತಿಮ ಫಲಿತಾಂಶವು [1,2,3] ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಪಟ್ಟಿಯಾಗಿದ್ದು, ನನ್ನ @list ಅಂತ್ಯದ ಬದಲು ಪಟ್ಟಿಯ ಮುಂಭಾಗಕ್ಕೆ ಅನ್ಶಿಫ್ಟ್ ಕಾರ್ಯವು ಸೇರುತ್ತದೆ; ಅನ್ಶಿಫ್ಟ್ @list, 1; ಅನ್ಶಿಫ್ಟ್ @list, 2,3; ಅಂತಿಮ ಫಲಿತಾಂಶವು [2,3,1] ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಪಟ್ಟಿಯಾಗಿದೆ, ಕಡತವನ್ನು ತೆರೆಯುವಾಗ, ಹೆಚ್ಚು ಬರೆಯುವ ಬದಲು ಸೇರಿಸಲು ">>" ಮೋಡ್ ಅನ್ನು ಬಳಸಿ. ತೆರೆಯಿರಿ (ನನ್ನ $fh, '>>',/ಕೆಲವು/ಫೈಲ್. txt '); "ಕೆಲವು ಹೊಸ ಪಠ್ಯ \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] ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಪಟ್ಟಿಯಾಗಿದೆ. ಬ್ಯಾಷ್ ಇನ್ ಬ್ಯಾಷ್ ಎಂಬ ಅನುಬಂಧದ ಮರುನಿರ್ದೇಶನವು ಯಾವುದೋ ಒಂದು ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಸೇರಿಸಲು ">>" ನ ಬಳಕೆಯಾಗಿದೆ, ಈ ಕೆಳಗಿನ ಶೆಲ್ ಆಜ್ಞೆಗಳ ಸರಣಿಯಲ್ಲಿಃ ಎಕೋ ಹಲೋ ವರ್ಲ್ಡ್! > ಪಠ್ಯ; ಪ್ರತಿಧ್ವನಿ ಜಗತ್ತಿಗೆ ವಿದಾಯ! >> ಪಠ್ಯ; ಬೆಕ್ಕಿನ ಪಠ್ಯ "ಗುಡ್ಬೈ ವರ್ಲ್ಡ್!" ಮೊದಲ ಆಜ್ಞೆಯಲ್ಲಿ ಬರೆಯಲಾದ ಪಠ್ಯ ಕಡತಕ್ಕೆ ಇದನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆ. ";" ಎಂದರೆ ಕೊಟ್ಟಿರುವ ಆಜ್ಞೆಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು, ಏಕಕಾಲದಲ್ಲಿ ಅಲ್ಲ. ಆದ್ದರಿಂದ, ಪಠ್ಯ ಕಡತದ ಅಂತಿಮ ವಿಷಯವೆಂದರೆಃ ಉಲ್ಲೇಖಗಳು ಅನುಬಂಧದ ವಿವರಣೆ. ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಲಿಸ್ಪ್ (ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ) ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಉದಾಹರಣೆಗೆ ಕೋಡ್ ಹೊಂದಿರುವ ಲೇಖನಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ ಉದಾಹರಣೆಗೆ ಹ್ಯಾಸ್ಕೆಲ್ ಕೋಡ್ ಇರುವ ಲೇಖನಗಳು ಉದಾಹರಣೆಗೆ ಪರ್ಲ್ ಕೋಡ್ ಇರುವ ಲೇಖನಗಳು ಉದಾಹರಣೆಗೆ ಐಬಿಎಂ ಪಿಸಿ ಹೊಂದಾಣಿಕೆಗಳಲ್ಲಿ ಪೈಥಾನ್ (ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ) ಕೋಡ್ ಡಾಸ್ ಇರುವ ಲೇಖನಗಳು