Pattern calculus
ಪ್ಯಾಟರ್ನ್ ಕಲನಶಾಸ್ತ್ರವು ಎಲ್ಲಾ ಗಣನೆಗಳನ್ನು ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ರೀತಿಯ ಮಾದರಿಯ ಹೊಂದಾಣಿಕೆಯ ಮೇಲೆ ಆಧರಿಸಿದೆ. ಲ್ಯಾಂಬ್ಡಾ ಕ್ಯಾಲ್ಕುಲಸ್ನಂತೆ, ಇದು ಕಾರ್ಯ ಮೌಲ್ಯಮಾಪನದ ಏಕರೂಪದ ಚಿಕಿತ್ಸೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಅಲ್ಲದೆ, ಇದು ಕಾರ್ಯಗಳನ್ನು ವಾದಗಳಾಗಿ ರವಾನಿಸಲು ಮತ್ತು ಫಲಿತಾಂಶಗಳಾಗಿ ಹಿಂತಿರುಗಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದಲ್ಲದೆ, ಮಾದರಿ ಕಲನಶಾಸ್ತ್ರವು ವಾದಗಳ ಆಂತರಿಕ ರಚನೆಗೆ ಏಕರೂಪದ ಪ್ರವೇಶವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಅವು ಜೋಡಿಗಳಾಗಿರಬಹುದು ಅಥವಾ ಪಟ್ಟಿಗಳಾಗಿರಬಹುದು ಅಥವಾ ಮರಗಳಾಗಿರಬಹುದು. ಅಲ್ಲದೆ, ಇದು ಮಾದರಿಗಳನ್ನು ವಾದಗಳಾಗಿ ರವಾನಿಸಲು ಮತ್ತು ಫಲಿತಾಂಶಗಳಾಗಿ ಹಿಂತಿರುಗಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಏಕರೂಪದ ಪ್ರವೇಶವನ್ನು ಮಾದರಿ-ಹೊಂದಾಣಿಕೆಯ ಕಾರ್ಯದಿಂದ ವಿವರಿಸಲಾಗಿದೆ, ಇದು ಅನಿಯಂತ್ರಿತ ದತ್ತಾಂಶ ರಚನೆಯ ಗಾತ್ರವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಾಂಡಿಯ ಸಂಕೇತದಲ್ಲಿ, ಇದನ್ನು ರಿಕರ್ಸಿವ್ ಫಂಕ್ಷನ್ ರೆಕ್ ಸೈಜ್ = | x y-> (ಸೈಜ್ x) + (ಸೈಜ್ y) | x-> 1 ನಿಂದ ನೀಡಲಾಗುತ್ತದೆ. ಮೊದಲ ಪ್ರಕರಣದಲ್ಲಿ ಹೊಂದಾಣಿಕೆ ವಿಫಲವಾದರೆ ಮಾತ್ರ ಈ ಪ್ರಕರಣವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಮೊದಲ ಅಥವಾ ವಿಶೇಷ ಪ್ರಕರಣವು ಖಾಲಿ-ಇಲ್ಲದ ಪಟ್ಟಿ ಅಥವಾ ಜೋಡಿಯಂತಹ ಯಾವುದೇ ಸಂಯುಕ್ತಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ. ಹೊಂದಾಣಿಕೆಯು ಎಡ ಘಟಕಕ್ಕೆ ಮತ್ತು ಬಲ ಘಟಕಕ್ಕೆ ಬಂಧಿಸುತ್ತದೆ. ನಂತರ ಕೇಸ್ನ ಮುಖ್ಯ ಭಾಗವು ಈ ಘಟಕಗಳ ಗಾತ್ರಗಳನ್ನು ಒಟ್ಟಿಗೆ ಸೇರಿಸುತ್ತದೆ. ಇದೇ ರೀತಿಯ ತಂತ್ರಗಳು ಹುಡುಕಲು ಮತ್ತು ನವೀಕರಿಸಲು ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳನ್ನು ನೀಡುತ್ತವೆ. ಈ ರೀತಿಯಲ್ಲಿ ಪುನರಾವರ್ತನೆ ಮತ್ತು ವಿಭಜನೆಯನ್ನು ಸಂಯೋಜಿಸುವುದರಿಂದ ಮಾರ್ಗ ಬಹುರೂಪತೆ ಉಂಟಾಗುತ್ತದೆ. ಮಾದರಿಗಳನ್ನು ನಿಯತಾಂಕಗಳಾಗಿ ರವಾನಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು (ಮಾದರಿ ಬಹುರೂಪತೆ) ಸಾಮಾನ್ಯ ಎಲಿಮಿನೇಟರ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಮೂಲಕ ವಿವರಿಸಲಾಗಿದೆ. ಮರದ ಎಲೆಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಸಂಖ್ಯೆಗಳನ್ನು ಕೌಂಟರ್ಗಳಾಗಿ ಪರಿವರ್ತಿಸಲು ಕನ್ಸ್ಟ್ರಕ್ಟರ್ಗಳನ್ನು ನೀಡಲಾಗಿದೆ ಎಂದು ಭಾವಿಸೋಣ. ಅನುಗುಣವಾದ ಎಲಿಮಿನೇಟರ್ಗಳನ್ನು ನಂತರ ಎಲಿಮಿನೇಟ್ ಮಾಡಲಾಗುತ್ತದೆ ಲೀಫ್ = | ಲೀಫ್ y-> y ಎಲಿಮಿನೇಟ್ ಕೌಂಟ್ = | ಕೌಂಟ್ y-> y ಉದಾಹರಣೆಗೆ, ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ. ಪ್ರಶ್ನೆಯಲ್ಲಿರುವ ಕನ್ಸ್ಟ್ರಕ್ಟರ್ಗಳಿಗೆ ಜೆನೆರಿಕ್ ಎಲಿಮಿನೇಟರ್ ಅನ್ನು ಅನ್ವಯಿಸುವ ಮೂಲಕ ಈ ಉದಾಹರಣೆಗಳನ್ನು ತಯಾರಿಸಬಹುದು. ಇದನ್ನು ಎಲಿಮ್ = | x-> | {y} x y-> y ನಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ, ಈಗ ಇದನ್ನು | {y} ಲೀಫ್ y-> y ಗೆ ಮೌಲ್ಯಮಾಪನ ಮಾಡಲಾಗುತ್ತದೆ, ಇದು ಇದಕ್ಕೆ ಸಮಾನವಾಗಿದೆ. ಇದು ಕೂಡ ಸಮಾನವಾಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಸುರುಳಿಯಾಕಾರದ ಕಟ್ಟುಪಟ್ಟಿಗಳು ಮಾದರಿಯ ಬೌಂಡ್ ಅಸ್ಥಿರಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ, ಆದ್ದರಿಂದ ಅದು ಉಚಿತವಾಗಿರುತ್ತದೆ ಮತ್ತು | {y} x y-> y ನಲ್ಲಿ ಬಂಧಿಸಲ್ಪಡುತ್ತದೆ. ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಕೆಳಗಿನ ಕೊಂಡಿಗಳ ಆರ್ಕೈವ್ ಕನ್ನಡಿ (ಇದು ಇನ್ನು ಮುಂದೆ ಆನ್ಲೈನ್ನಲ್ಲಿಲ್ಲ)-ಮೂಲ ಕಾಗದ, ಆದರೆ ಹೆಚ್ಚು ಸಾಮಾನ್ಯವಲ್ಲ. ಬಾಂಡಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷಾ ಸಂಶೋಧನಾ ತಾಣ ಲ್ಯಾಂಬ್ಡಾ ಕ್ಯಾಲ್ಕುಲಸ್