Pattern calculus
પેટર્ન કલન તમામ ગણતરીઓને ખૂબ જ સામાન્ય પ્રકારની પેટર્ન મેળ પર આધારિત કરે છે. લેમ્બડા કલનની જેમ, તે કાર્ય મૂલ્યાંકનની સમાન સારવારને ટેકો આપે છે. ઉપરાંત, તે વિધેયોને દલીલો તરીકે પસાર કરવાની અને પરિણામો તરીકે પરત કરવાની મંજૂરી આપે છે. વધુમાં, પેટર્ન કલન દલીલોના આંતરિક માળખામાં સમાન પ્રવેશને ટેકો આપે છે, પછી ભલે તે જોડી હોય અથવા સૂચિ અથવા વૃક્ષો હોય. ઉપરાંત, તે પેટર્નને દલીલો તરીકે પસાર કરવાની અને પરિણામો તરીકે પરત કરવાની મંજૂરી આપે છે. યુનિફોર્મ એક્સેસ પેટર્ન-મેચિંગ ફંક્શન દ્વારા સચિત્ર છે જે મનસ્વી ડેટા સ્ટ્રક્ચરના કદની ગણતરી કરે છે. પ્રોગ્રામિંગ લેંગ્વેજ બોન્ડીના સંકેતલિપીમાં, તે રિકર્સિવ ફંક્શન દ્વારા આપવામાં આવે છે, ચાલો રિક સાઈઝ = | x y-> (સાઈઝ x) + (સાઈઝ y) | x-> 1. બીજો, અથવા ડિફોલ્ટ કેસ દલીલ અને વળતર સામે પેટર્ન સાથે મેળ ખાય છે. આ કેસનો ઉપયોગ ત્યારે જ થાય છે જ્યારે પ્રથમ કેસમાં મેળ નિષ્ફળ જાય. પ્રથમ અથવા વિશેષ કેસ કોઈપણ સંયોજન સાથે મેળ ખાય છે, જેમ કે ખાલી ન હોય તેવી સૂચિ અથવા જોડી. મેચિંગ ડાબા ઘટક અને જમણા ઘટક સાથે જોડાય છે. પછી કેસનો મુખ્ય ભાગ આ ઘટકોના કદને એકસાથે ઉમેરે છે. સમાન તકનીકો શોધ અને અપડેટ કરવા માટે સામાન્ય પ્રશ્નો આપે છે. આ રીતે પુનરાવર્તન અને વિઘટનનું સંયોજન પાથ પોલીમોર્ફિઝમ પેદા કરે છે. પેટર્નને પરિમાણો (પેટર્ન પોલીમોર્ફિઝમ) તરીકે પસાર કરવાની ક્ષમતા સામાન્ય એલિમિનેટરને વ્યાખ્યાયિત કરીને સચિત્ર કરવામાં આવે છે. ધારો કે વૃક્ષના પાંદડા બનાવવા માટે અને સંખ્યાઓને કાઉન્ટરમાં રૂપાંતરિત કરવા માટે કન્સ્ટ્રક્ટર્સ આપવામાં આવ્યા છે. અનુરૂપ એલિમિનેટર પછી દૂર કરવામાં આવે છે લીફ = | લીફ વાય-> વાય એલિમકાઉન્ટ = | કાઉન્ટ વાય-> વાય ઉદાહરણ તરીકે, જેમ કરે છે તેમ મૂલ્યાંકન કરે છે. આ ઉદાહરણો પ્રશ્નમાં કન્સ્ટ્રક્ટર્સ પર સામાન્ય એલિમિનેટર લાગુ કરીને ઉત્પન્ન કરી શકાય છે. તેને એલિમ = | x-> | {y} x y-> y દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે હવે | {y} લીફ y-> y નું મૂલ્યાંકન કરે છે જે આની સમકક્ષ છે. તે પણ સમાન છે. સામાન્ય રીતે, કર્લી કૌંસમાં પેટર્નના બંધાયેલા ચલ હોય છે, જેથી તે મુક્ત હોય છે અને | {y} x y-> y માં બંધાયેલ હોય છે. બાહ્ય કડીઓ નીચેની કડીઓનું આર્કાઇવ મિરર (જે હવે ઓનલાઇન નથી)-મૂળ કાગળ, પરંતુ સૌથી સામાન્ય નથી. બોન્ડી પ્રોગ્રામિંગ લેંગ્વેજ રિસર્ચ સાઇટ લામ્બડા કેલ્ક્યુલસ