છ વરસના બાળક સાથે વિધેયાત્મક પ્રોગ્રામિંગ પર વાતચીત

Monday, July 28, 2025

ગઈકાલની વાત છે, મારો છ વરસનો દિકરો મારી પાસે આવ્યો અને મને પૂછવા લાગ્યો કે, "તમે શુ વાંચો છો?"

એ સમયે હું જેનિસ વોઇગ્ટલેન્ડરના હેબિલિટેશન પ્રબંધનો એક ભાગ વાંચી રહ્યો હતો. હું થોડો ખચકાયો કે શુ જવાબ આપવો એટલે મેં ટૂંકમાં પતાવ્યું કે, "હું મુક્ત પ્રમેયો ઉપર ખૂબ લાંબી વાર્તા વાંચી રહ્યો છું."

આ એક ભાષાંતરીત લેખ છે. જેનું ભાષાંતર Brent Yorgeyએ લખેલ Conversations with a six-year-old on functional programming લેખ ઉપર થી કરવામાં આવ્યું છે. બધા જ હક્કો   Brent Yorgeyને આધીન છે અને અહીં આ ભાષાંતરીત લેખ મૂળ લેખકની પરવાનગી બાદ મુકવામાં આવ્યો છે.
એને ઉત્સુકતા સાથે પૂછ્યું કે, "મુક્ત પ્રમેયો એટલે શું?"

બાળકને આ કઈ રીતે સમજાવવું એના પર થોડીક ક્ષણ વિચાર કરીને મેં શરૂઆત કરી કે, "તને ખબર છે વિધેય એટલે શું?" એને ખબર ન હતી એટલે મેં સમજાવ્યું કે, "વિધેય એક યંત્ર જેવું છે જ્યાં તમે એક છેડે કાંઈક મુકો અને બીજા છેડે કાંઈક બહાર આવે. તેથી જો તું એક છેડે સંખ્યા ત્રણ મૂક તો બીજા છેડે એમાં એક ઉમેરો થઈને ચાર સંખ્યા બહાર આવે અથવા તું છ મૂક તો સંખ્યા સાત બહાર આવે" એના ચહેરાનો હાવભાવ જોતા લાગ્યું કે, એને એમાં થોડી ખબર પડી છે એટલેમે આગળ ચલાવ્યું, "વિધેય યંત્રનો _પ્રકાર_ તને કહેશે કે, યંત્ર ક્યાં પ્રકારની વસ્તુ લેશે અને કયાં પ્રકારની વસ્તુ બહાર કાઢશે. બની શકે કે એ સંખ્યા લેશે અને સંખ્યા બહાર કાઢશે. અથવા તો સંખ્યાઓની _સૂચિ_ લેશે અને એક સંખ્યા બહાર કાઢશે." ત્યાં એ વચમાં જ બોલ્યો "એવું પણ બની શકે ને કે એ શબ્દો પણ લે?" "હા, બરાબર! એમાં તું શબ્દો નાખ અને શબ્દો બહાર નીકળે અથવાતો એનાથી પણ આગળ કે તું એક વિધેય યંત્રમાં _બીજા વિધેય યંત્ર_ મૂક અને વિધેય યંત્ર બહાર આવશે. એક વિધેય યંત્રને બીજા વિધેય યંત્રમાં નાખવાના વિચારથી એ વિસ્મય પામ્યો.

"તો" હું મૂળ મુદ્દા પર પાછા આવતા, "મુક્ત પ્રમેય એ છે કે જયારે તમે વિધેય યંત્ર વિશે એવું કંઈક કહી શકો કે જે હંમેશા સાચું જ હોય જો તમને ફક્ત વિધેયના પ્રકારની ખબર હોય પછી ભલેને યંત્રની અંદર શુ છે અને કઈ રીતે ચાલે છે એ ખબર ના હોય". આ એને સમજવામાં થોડું અઘરું લાગ્યું (અને સાચું કહું તો મુક્ત પ્રમેય ત્યારે જ સમજાય છે જયારે તમને બહુરુપતા વિશે પણ જાણકારી હોય જેમાં હું ચોક્કસથી વાતને લઇ જવા માંગતો ન હતો). પણ આ આખી વાત પરથી મને એક નવો જ વિચાર આવ્યો.

મેં કીધું, "ચાલો આપણે એક રમત રમીએ. આ રમતનું નામ છે, વિધેય યંત્ર રમત. હું મનમાં એક વિધેય યંત્ર ધારી લઉ છું. તારે એ યંત્રમાં શુ નાખવું છે એ કહેવાનું એને હું તને એમાંથી શું બહાર નીકળશે એ કહીશ. એના ઉપરથી તારે એ યંત્ર શુ કરે છે એ કહેવાનું" એને આ રમત તરત જ ગમી ગઈ અને એટલી બધી કે અમે આ રમત જ રમ્યા કરીએ છે. ગઈ કાલે યારે અમે જલસામાં જતા હતા ત્યારે વાહન ચલાવતી વખતે અમે રમતા હતા, સવારે જયારે એને નવરાવતો હતો ત્યારે પણ આ રમતા હતા અને મારે કહેવું પડશે કે હાલ સુધી રમ્યા એમાં એનું અનુમાન દરેક વખતે સાચું જ પડ્યું છે.



 

 

 

 

 

મે λx.min(x + 2, 10) થી પ્રયત્ન કર્યો. પણ આ વિધેય યંત્ર એને થોડું અઘરું પડ્યું. વળી, કેટલાક કિસ્સાઓમાં એને ખબર પડી જતી હતી કે વિધેય યંત્ર શુ કરે છે પણ એ શબ્દોમાં વર્ણવી શકતો ન હતો (λx.10x[x । 10]માં એવુ જ થયું હતું). એટલે અમે સહેલા વિધેય ધરતા અને એક વાર જો સામે વાળાને ખબર પડી જાય તો ધરનાર વ્યક્તિ સામેવાળા ને પૂછે અને ધરનાર વિધેય શુ નીકળશે કે કહેવાનું ચાલુ કરશે.

λx.6. આ વિધેય યંત્રમાં પણ એને ધરવામાં મુશ્કેલી પડી (જોકે છેલ્લે તો એનું અનુમાન સાચું જ પડ્યું). એને એમ હતું કે જો વિધેયમાં કાંઈક નાખવામાં આવે તો એના પર કાંઈક ગણતરી થશે પછી જ કાંઈક બહાર આવશે. એને એવો ખ્યાલ જ ન આવ્યો કે એવું પણ બની શકે કે વિધેયને એમાં શુ નાખો છો એની કાંઈક પડી જ ના હોય અને તમે જે નાખો એને જ બહાર કાઢે (મજાની વાત એવી છે કે, આ સત્રમાં વિધેયાત્મક પ્રોગ્રામિંગના મારા વર્ગના વિદ્યાર્થીઓ જયારે લામડા ગણિત શીખી રહ્યા હતાં ત્યારે તેઓ એ વાત થી નારાજ તેમજ મૂંઝવણમાં હતાં જયારે એમને વિધેયમાં મોકલેલ ચલને વિધેયની અંદર બદલીને બહાર કાઢવો હોય અને એવું ન થતું હોય).

મારા થોડા વારા પછી એને ધરવાની ઈચ્છા થઇ (જે હું જાણતો જ હતો કે આવું થશે). ક્યારેક એ ખુબ સરસ વિધેય ધારતો તો ક્યારેક એના વિધેયમાં વિસંગતતા હોય (કેટલીક વાર એ વિધેયમાં થી શુ નીકળશે એનો તર્ક રમતની વચ્ચેથી બદલાય જતો તો પણ એતો ના જ પડતો કે એવું કાંઈ થયું નથી). તો પણ અમને તો મઝા આવતી. અને આખરે એને λx.min(x + 2, 10) યંત્રની ની પણ ખબર પડી ગઈ. એને પોતે પણ આવું કાંઈક વિધેય યંત્ર બનાવ્યું.
  


 

 

 

 

 

મને લાગે છે કે એને એના બાલમંદિરના વર્ગમાંથી પ્રેરણા મળી હશે જ્યાં તેઓ 10 સુધીના સરવાળાની જોડી વિષે શીખી રહ્યા હતા.


ચોક્કસપણે મારા પિતા તરીકેના શ્રેષ્ઠ દિવસોમાંનો એક દિવસ.

---