The program calculates the absolute value of a number.

यह प्रोग्राम एक संख्या का निरपेक्ष मान निकालता है।


Functions are declared to perform specific tasks.

विशिष्ट कार्यों को करने के लिए फ़ंक्शन घोषित किए जाते हैं।


The maximum of two numbers can be computed using a function.

एक फ़ंक्शन का उपयोग करके दो संख्याओं का अधिकतम मान निकाला जा सकता है।


Recursive functions are designed at a mathematical level using equations.

समीकरणों का उपयोग करके गणितीय स्तर पर पुनरावर्ती कार्यों को डिज़ाइन किया जाता है।


Integer division yields a quotient and a remainder.

पूर्णांक विभाजन एक भागफल और एक शेषफल देता है।


The digit sum of a number can be computed recursively.

एक संख्या के अंकों का योग पुनरावर्ती रूप से निकाला जा सकता है।


The greatest common divisor of two numbers is an important concept.

दो संख्याओं का सबसे बड़ा सामान्य भाजक एक महत्वपूर्ण अवधारणा है।


Linear search is used to find the first number satisfying a condition.

एक शर्त को पूरा करने वाली पहली संख्या खोजने के लिए रैखिक खोज का उपयोग किया जाता है।


Higher-order functions take functions as arguments.

उच्च-क्रम के फ़ंक्शन फ़ंक्शन को तर्क के रूप में लेते हैं।


Partial applications of functions are possible.

फ़ंक्शन के आंशिक अनुप्रयोग संभव हैं।


आज मौसम सुहावना है।


मैं बाज़ार जा रहा हूँ।


क्या आप कृपया मेरी इसमें मदद कर सकते हैं?


समाचार में एक बड़ी घटना की सूचना दी गई।


The company announced its quarterly results.

कंपनी ने अपने तिमाही नतीजों की घोषणा की।


The government is implementing new policies.

सरकार नई नीतियाँ लागू कर रही है।


The economy is showing signs of recovery.

अर्थव्यवस्था में सुधार के संकेत दिख रहे हैं।


The team is working hard to achieve its goals.

टीम अपने लक्ष्यों को प्राप्त करने के लिए कड़ी मेहनत कर रही है।


I need to finish this project by tomorrow.

मुझे यह परियोजना कल तक पूरी करनी है।


सम्मेलन अगले सप्ताह आयोजित किया जाएगा।


Tail recursion is more efficient than general recursion.

टेल रिकर्सन सामान्य रिकर्सन की तुलना में अधिक कुशल है।


Recursive function applications can only appear in tail positions.

रिकर्सिव फ़ंक्शन अनुप्रयोग केवल टेल स्थितियों में ही आ सकते हैं।


Typical examples of tail recursive functions include gcd and my_mod.

टेल रिकर्सिव फ़ंक्शन के विशिष्ट उदाहरणों में gcd और my_mod शामिल हैं।


Functions like pow are not tail recursive.

pow जैसे फ़ंक्शन टेल रिकर्सिव नहीं हैं।


Tail recursive functions can be traced in a simple way.

टेल रिकर्सिव फ़ंक्शन को एक सरल तरीके से ट्रेस किया जा सकता है।


In imperative languages, tail recursive functions can be expressed with loops.

इंपरेटिव भाषाओं में, टेल रिकर्सिव फ़ंक्शन को लूप के साथ व्यक्त किया जा सकता है।


Functional programming languages prefer tail recursive functions over loops.

फ़ंक्शनल प्रोग्रामिंग भाषाएँ लूप की तुलना में टेल रिकर्सिव फ़ंक्शन को पसंद करती हैं।


Non-tail recursive functions can often be reformulated as tail recursive functions.

गैर-टेल रिकर्सिव फ़ंक्शन को अक्सर टेल रिकर्सिव फ़ंक्शन के रूप में पुन: तैयार किया जा सकता है।


An extra argument can serve as an accumulator.

एक अतिरिक्त तर्क एक संचायक के रूप में कार्य कर सकता है।


The factorial of a positive integer n is the product of all positive integers less than or equal to n.

एक धनात्मक पूर्णांक n का फ़ैक्टोरियल n से कम या उसके बराबर सभी धनात्मक पूर्णांकों का गुणनफल है।


0! को 1 के रूप में परिभाषित किया गया है।


Sometimes, a function needs to return more than one value.

कभी-कभी, एक फ़ंक्शन को एक से अधिक मान वापस करने की आवश्यकता होती है।


The time for a marathon can be given in the format h:m:s.

एक मैराथन का समय h:m:s प्रारूप में दिया जा सकता है।


OCaml has tuples to represent collections of values.

OCaml में मानों के संग्रह का प्रतिनिधित्व करने के लिए टुपल्स हैं।


The marathon time of Eliud Kipchoge's world record in Berlin was 2:01:39.

एलिउड किपचोगे का बर्लिन में विश्व रिकॉर्ड मैराथन का समय 2:01:39 था।


टुपल्स को नेस्ट किया जा सकता है।


लंबाई 2 के टुपल्स को जोड़े कहा जाता है।


लंबाई 3 के टुपल्स को ट्रिपल कहा जाता है।


What happens when we execute the native operation 5/0 in OCaml?

जब हम OCaml में मूल ऑपरेशन 5/0 निष्पादित करते हैं तो क्या होता है?


The program binds the identifier 'a' to the integer 8.

यह प्रोग्राम 'ए' पहचानकर्ता को पूर्णांक 8 से बांधता है।


After execution, the interpreter will show the values it has computed.

निष्पादन के बाद, व्याख्याकार उन मानों को दिखाएगा जिनकी उसने गणना की है।


हर अभिव्यक्ति का एक प्रकार होता है।


The course is designed to take about one third of the study time.

यह पाठ्यक्रम अध्ययन के समय का लगभग एक तिहाई लेने के लिए डिज़ाइन किया गया है।


We assume that incoming students are familiar with mathematical thinking.

हम मानते हैं कि आने वाले छात्र गणितीय सोच से परिचित हैं।


The interpreter checks that the given text can be interpreted as a program.

व्याख्याकार जांचता है कि दिए गए पाठ को एक कार्यक्रम के रूप में व्याख्यायित किया जा सकता है या नहीं।


The second declaration of the identifier 'a' shadows the first declaration of 'a'.

पहचानकर्ता 'ए' की दूसरी घोषणा 'ए' की पहली घोषणा को छाया देती है।


The endpoints of the interval can be obtained with the predefined identifiers.

अंतराल के अंतिम बिंदुओं को पूर्वनिर्धारित पहचानकर्ताओं के साथ प्राप्त किया जा सकता है।


We concentrate on recursive functions on integers computing things like powers and integer quotients.

हम पूर्णांकों पर पुनरावर्ती कार्यों पर ध्यान केंद्रित करते हैं जो शक्तियों और पूर्णांक भागफलों जैसी चीजों की गणना करते हैं।


As it comes to functional programming, we cover higher-order recursive functions.

जहां तक फंक्शनल प्रोग्रामिंग का सवाल है, हम उच्च-क्रम पुनरावर्ती कार्यों को कवर करते हैं।


The new English text realizes some substantial changes.

नया अंग्रेजी पाठ कुछ महत्वपूर्ण बदलावों को महसूस करता है।


We also cover asymptotic running time considering binary search, insertion sort, and merge sort.

हम बाइनरी सर्च, इंसर्शन सॉर्ट और मर्ज सॉर्ट पर विचार करते हुए एसिम्प्टोटिक रनिंग टाइम को भी कवर करते हैं।


Based on these formal descriptions, we program recursive descent parsers, type checkers and evaluators.

इन औपचारिक विवरणों के आधार पर, हम पुनरावर्ती वंश पार्सर, टाइप चेकर और मूल्यांकनकर्ता को प्रोग्राम करते हैं।


We emphasize the role of correctness statements and practice inductive correctness proofs.

हम शुद्धता विवरणों की भूमिका पर जोर देते हैं और आगमनात्मक शुद्धता प्रमाणों का अभ्यास करते हैं।


The course spans 15 weeks of teaching in the winter semester.

यह पाठ्यक्रम शीतकालीन सेमेस्टर में 15 सप्ताह तक चलता है।


Students perceive the course as challenging and exciting.

छात्र पाठ्यक्रम को चुनौतीपूर्ण और रोमांचक मानते हैं।


We assume that incoming students are familiar with mathematical thinking, but we do not assume programming experience.

हम मानते हैं कि आने वाले छात्र गणितीय सोच से परिचित हैं, लेकिन हम प्रोग्रामिंग अनुभव की धारणा नहीं रखते हैं।


The take home project should be considered an important part of the course, given that it requires the students writing and debugging a larger program.

घर ले जाने वाली परियोजना को पाठ्यक्रम का एक महत्वपूर्ण हिस्सा माना जाना चाहिए, यह देखते हुए कि इसके लिए छात्रों को एक बड़ा कार्यक्रम लिखने और डीबग करने की आवश्यकता होती है।


As it comes to the structure of programming languages, we study the different layers of syntax and semantics.

जहां तक प्रोग्रामिंग भाषाओं की संरचना का सवाल है, हम वाक्यविन्यास और अर्थशास्त्र की विभिन्न परतों का अध्ययन करते हैं।


We explain how lists and trees can be stored as linked blocks in an array, thus explaining memory consumption for constructor types.

हम बताते हैं कि सूचियों और पेड़ों को एक सरणी में जुड़े ब्लॉकों के रूप में कैसे संग्रहीत किया जा सकता है, इस प्रकार कंस्ट्रक्टर प्रकारों के लिए मेमोरी खपत की व्याख्या की जाती है।


Obtain a derivation of ẋ < y using the second rule.

दूसरी विधि का उपयोग करके ẋ < y का व्युत्पन्न प्राप्त करें।


The example derivation system considered here was chosen for the purpose of explanation.

यहाँ विचारित उदाहरण व्युत्पन्न प्रणाली को स्पष्टीकरण के उद्देश्य से चुना गया था।


In practice, derivation systems are used for describing computational relations that cannot be described otherwise.

व्यवहार में, व्युत्पन्न प्रणालियों का उपयोग उन संगणनात्मक संबंधों का वर्णन करने के लिए किया जाता है जिन्हें अन्यथा वर्णित नहीं किया जा सकता है।


Typing and evaluation of expressions are examples for such relations, and we are going to use derivation systems for this purpose.

व्यंजनों का टाइपिंग और मूल्यांकन ऐसे संबंधों के उदाहरण हैं, और हम इस उद्देश्य के लिए व्युत्पन्न प्रणालियों का उपयोग करने जा रहे हैं।


5 ̇ <9 के लिए सभी व्युत्पन्न दें।


Give two inference rules for judgments x ̇ < y such that your rules derive the same judgments the rules given above derive, but have the additional property that no judgments has more than one derivation.

निर्णयों x ̇ < y के लिए दो अनुमान नियम दें जैसे कि आपके नियम वही निर्णय प्राप्त करते हैं जो ऊपर दिए गए नियम प्राप्त करते हैं, लेकिन इसमें अतिरिक्त गुण है कि किसी भी निर्णय में एक से अधिक व्युत्पन्न नहीं है।


Give two inference rules for judgments x ̇ < y such that a judgment x ̇ < y is derivable if and only if x+k·5 = y for some k≥1.

निर्णयों x ̇ < y के लिए दो अनुमान नियम दें जैसे कि एक निर्णय x ̇ < y व्युत्पन्न है यदि और केवल यदि x+k·5 = y कुछ k≥1 के लिए।


The semantic layers of a language see the phrases of the language as abstract syntactic objects where lexical details don’t play a role.

एक भाषा की शाब्दिक परतें भाषा के वाक्यांशों को अमूर्त वाक्यात्मक वस्तुओं के रूप में देखती हैं जहाँ शाब्दिक विवरण कोई भूमिका नहीं निभाते हैं।


This brings us back to the philosophy of Chapter 1 where we explained OCaml with abstract syntactic notions such as expressions, types, and declarations and lexical details where conveyed tacitly through the code for mathematically motivated examples.

यह हमें अध्याय 1 के दर्शन पर वापस लाता है जहाँ हमने OCaml को अमूर्त वाक्यात्मक धारणाओं जैसे कि भाव, प्रकार और घोषणाओं के साथ समझाया और शाब्दिक विवरण जहाँ गणितीय रूप से प्रेरित उदाहरणों के लिए कोड के माध्यम से चुपचाप व्यक्त किया गया था।


For the discussion of the semantic layers, we switch to a language of abstract expressions differing from the sublanguage considered for the syntactic layers.

शाब्दिक परतों की चर्चा के लिए, हम अमूर्त भावों की एक भाषा में स्विच करते हैं जो वाक्यात्मक परतों के लिए विचार की गई उपभाषा से भिन्न है।


The new language has types as considered before t::=int|bool|string|t 1 →t 2 |t 1 ×···×t n n≥2 35 2 Syntax and Semantics and abstract expressions as described by the following grammar:

नई भाषा में पहले t::=int|bool|string|t 1 →t 2 |t 1 ×···×t n n≥2 35 2 वाक्यविन्यास और अर्थशास्त्र और निम्नलिखित व्याकरण द्वारा वर्णित अमूर्त भावों के रूप में विचार किए गए प्रकार हैं:


The letter c ranges over constants (lexically represented as literals), the letters x and f range over variables (lexically represented as identifiers), and the letter o ranges over operators.

अक्षर c स्थिरांकों पर सीमाएँ (शब्दार्थ रूप से शाब्दिक के रूप में दर्शाई गई), अक्षर x और f चर पर सीमाएँ (शब्दार्थ रूप से पहचानकर्ताओं के रूप में दर्शाई गई), और अक्षर o ऑपरेटरों पर सीमाएँ।


Constants are values of the types int, bool, and string.

स्थिरांक int, bool, और string प्रकार के मान हैं।


For simplicity, we just have binary operator applications.

सरलता के लिए, हमारे पास केवल बाइनरी ऑपरेटर अनुप्रयोग हैं।


The variables introduced by lambda expressions and let expressions are called local variables.

लैम्डा भावों और लेट भावों द्वारा पेश किए गए चरों को स्थानीय चर कहा जाता है।


Lambda expressions are written in mathematical notation and take only one argument variable.

लैम्डा भाव गणितीय संकेतन में लिखे जाते हैं और केवल एक तर्क चर लेते हैं।


Similarly, let expressions bind only one or two variables.

इसी तरह, लेट भाव केवल एक या दो चरों को बांधते हैं।


Tuple patterns are replaced by projections π n , yielding the nth component of a tuple.

टपल पैटर्न को प्रक्षेपण π n द्वारा प्रतिस्थापित किया जाता है, जो एक टपल का nवां घटक उत्पन्न करता है।


We will refer to the expressions identified by the phrasal syntax as concrete expressions.

हम वाक्यांश संबंधी वाक्यविन्यास द्वारा पहचानी गई अभिव्यक्तियों को ठोस अभिव्यक्तियों के रूप में संदर्भित करेंगे।


It is possible to translate concrete expressions into equivalent abstract expressions.

ठोस भावों को समतुल्य अमूर्त भावों में अनुवाद करना संभव है।


When we program, expressions are written as sequences of characters, which are converted into sequences of words, which are then parsed into expressions.

जब हम प्रोग्राम करते हैं, तो भावों को वर्णों के अनुक्रम के रूप में लिखा जाता है, जिन्हें शब्दों के अनुक्रम में परिवर्तित किया जाता है, जिन्हें फिर भावों में पार्स किया जाता है।


The rules for the conversion of character sequences into abstract expressions are fixed by the concrete syntax of a language, which refines the abstract syntax of the language.

वर्ण अनुक्रमों को अमूर्त भावों में बदलने के नियम एक भाषा के ठोस वाक्यविन्यास द्वारा तय किए जाते हैं, जो भाषा के अमूर्त वाक्यविन्यास को परिष्कृत करता है।


In the lexical representation of an expression, subexpressions can be indicated with parentheses, following a convention familiar from mathematical notation.

एक भाव के शाब्दिक प्रतिनिधित्व में, उप-भावों को कोष्ठकों के साथ इंगित किया जा सकता है, जो गणितीय संकेतन से परिचित एक परंपरा का पालन करते हैं।


To reduce the number of parentheses needed for the textual representation of expressions, the concrete syntax of a language fixes operator precedences and grouping rules.

भावों के पाठ्य प्रतिनिधित्व के लिए आवश्यक कोष्ठकों की संख्या को कम करने के लिए, एक भाषा का ठोस वाक्यविन्यास ऑपरेटर प्राथमिकताएं और समूहीकरण नियम तय करता है।


Given the abstract syntax of a language, we can define the static semantics and the dynamic semantics of the language.

किसी भाषा के अमूर्त वाक्यविन्यास को देखते हुए, हम भाषा के स्थैतिक अर्थ विज्ञान और गतिशील अर्थ विज्ञान को परिभाषित कर सकते हैं।


The dynamic semantics is concerned with the evaluation of expressions and does not make use of types.

गतिशील अर्थ विज्ञान भावों के मूल्यांकन से संबंधित है और प्रकारों का उपयोग नहीं करता है।


The static semantics defines a type discipline such that the evaluation of well-typed expressions doesn’t lead to obviously erroneous situations.

स्थैतिक अर्थ विज्ञान एक प्रकार का अनुशासन परिभाषित करता है जैसे कि अच्छी तरह से टाइप किए गए भावों का मूल्यांकन स्पष्ट रूप से गलत स्थितियों की ओर नहीं जाता है।


The static semantics determines well-typed expressions and their types, and the dynamic semantics determines evaluable expressions and their values.

स्थैतिक अर्थ विज्ञान अच्छी तरह से टाइप किए गए भावों और उनके प्रकारों को निर्धारित करता है, और गतिशील अर्थ विज्ञान मूल्यांकन योग्य भावों और उनके मूल्यों को निर्धारित करता है।


Both semantics employ environments mapping free variables to either types or values.

दोनों अर्थ विज्ञान मुक्त चरों को या तो प्रकारों या मानों पर मैप करने वाले वातावरण का उपयोग करते हैं।


The dynamic semantics represents functional values as so-called closures combining the syntactic description of a function with a value environment providing values for the free variables.

गतिशील अर्थ विज्ञान कार्यात्मक मानों को तथाकथित क्लोजर के रूप में दर्शाता है जो मुक्त चरों के लिए मान प्रदान करने वाले मान वातावरण के साथ एक फ़ंक्शन का वाक्यविन्यास विवरण जोड़ता है।


We speak of typing judgments and typing rules for the static semantics, and of evaluation judgments and evaluation rules for the dynamic semantics.

हम स्थैतिक अर्थ विज्ञान के लिए टाइपिंग निर्णयों और टाइपिंग नियमों और गतिशील अर्थ विज्ञान के लिए मूल्यांकन निर्णयों और मूल्यांकन नियमों की बात करते हैं।


Typing rules and evaluation rules have a declarative reading (concerning the naive construction of derivations) and an algorithmic reading.

टाइपिंग नियमों और मूल्यांकन नियमों में एक घोषणात्मक पाठ (व्युत्पत्तियों के भोले निर्माण के संबंध में) और एक एल्गोरिथम पाठ है।


The algorithmic reading of the inference rules gives us abstract algorithms that given an expression and an environment compute either the type or the value of the expression provided it exists.

अनुमान नियमों का एल्गोरिथम पाठ हमें अमूर्त एल्गोरिदम देता है जो एक भाव और एक वातावरण को देखते हुए या तो भाव का प्रकार या मान की गणना करता है, बशर्ते कि वह मौजूद हो।


The type checking algorithm given by the typing rules needs to guess the types of the argument variables of lambda expressions.

टाइपिंग नियमों द्वारा दिया गया टाइप चेकिंग एल्गोरिदम को लैम्डा भावों के तर्क चरों के प्रकारों का अनुमान लगाने की आवश्यकता है।


For recursive function declarations we need an argument type and a result type to avoid guessing.

पुनरावर्ती फ़ंक्शन घोषणाओं के लिए हमें अनुमान लगाने से बचने के लिए एक तर्क प्रकार और एक परिणाम प्रकार की आवश्यकता होती है।


A good way to think about type checking sees type checking as abstract evaluation of an expression.

टाइप चेकिंग के बारे में सोचने का एक अच्छा तरीका टाइप चेकिंग को एक भाव के अमूर्त मूल्यांकन के रूप में देखना है।


While evaluation computes values, type checking computes types.

जबकि मूल्यांकन मानों की गणना करता है, टाइप चेकिंग प्रकारों की गणना करता है।


There is the connection that an expression of a type evaluate to a value of type t (so-called type safety).

एक संबंध है कि एक प्रकार का एक भाव प्रकार t के मान का मूल्यांकन करता है (तथाकथित प्रकार सुरक्षा)।


As a consequence, well-typed expressions have the property that their evaluation cannot lead to type conflicts.

नतीजतन, अच्छी तरह से टाइप किए गए भावों में यह गुण होता है कि उनका मूल्यांकन प्रकार के संघर्ष की ओर नहीं ले जा सकता है।


The type checking algorithm given by the typing rules always terminates.

टाइपिंग नियमों द्वारा दिया गया टाइप चेकिंग एल्गोरिदम हमेशा समाप्त होता है।


The code defines a function to calculate the factorial of a number.

यह कोड एक संख्या के फैक्टोरियल की गणना करने के लिए एक फ़ंक्शन को परिभाषित करता है।


Variables are represented as strings in this programming language.

इस प्रोग्रामिंग भाषा में, चर को स्ट्रिंग के रूप में दर्शाया जाता है।


The parser translates strings into abstract syntax trees.

पार्सर स्ट्रिंग को एब्स्ट्रैक्ट सिंटैक्स ट्री में बदलता है।


We will discuss the concept of recursive descent parsing.

हम रिकर्सिव डिसेंट पार्सिंग की अवधारणा पर चर्चा करेंगे।


The grammar follows the conventions of OCaml.

व्याकरण OCaml के सम्मेलनों का पालन करता है।


Function applications take their arguments before operator applications.

फ़ंक्शन अनुप्रयोग अपने तर्क ऑपरेटर अनुप्रयोगों से पहले लेते हैं।


Multiplication takes its arguments before addition and subtraction.

गुणा अपने तर्क जोड़ और घटाव से पहले लेता है।


The lexer converts the string into a list of tokens.

लेक्सर स्ट्रिंग को टोकन की एक सूची में परिवर्तित करता है।


The function checks whether a binding judgment is derivable.

यह फ़ंक्शन जांचता है कि क्या एक बाध्यकारी निर्णय व्युत्पन्न है।


The program is designed with a modular approach.

कार्यक्रम को एक मॉड्यूलर दृष्टिकोण के साथ डिज़ाइन किया गया है।


The interpreter evaluates expressions in an environment.

इंटरप्रेटर एक वातावरण में भावों का मूल्यांकन करता है।


The type checker computes the type of an expression.

टाइप चेकर एक अभिव्यक्ति का प्रकार निर्धारित करता है।


This chapter discusses parsing techniques.

यह अध्याय पार्सिंग तकनीकों पर चर्चा करता है।


कोड एक टेल-रिकर्सिव लेक्सर का उपयोग करता है।


The function handles white space characters.

यह फ़ंक्शन व्हाइट स्पेस वर्णों को संभालता है।


The grammar describes a parsing function.

व्याकरण एक पार्सिंग फ़ंक्शन का वर्णन करता है।


The recursive calls of the parsing function can be visualized.

पार्सिंग फ़ंक्शन के रिकर्सिव कॉल को देखा जा सकता है।


The new grammar rule is realized with an additional rule.

नया व्याकरण नियम एक अतिरिक्त नियम के साथ महसूस किया जाता है।


We use the letter c for variables ranging over tokens.

हम टोकन पर चर के लिए अक्षर c का उपयोग करते हैं।


The key idea is to work with a stack of already parsed subtrees.

मुख्य विचार पहले से ही पार्स किए गए सबट्री के एक स्टैक के साथ काम करना है।


Sorting a list is easy: We start with the empty list, which is sorted, and insert the elements one by one.

एक सूची को छाँटना आसान है: हम खाली सूची से शुरू करते हैं, जो क्रमबद्ध है, और एक-एक करके तत्वों को सम्मिलित करते हैं।


Once all elements are inserted, we have a sorted rearrangement of the original list.

एक बार सभी तत्व सम्मिलित हो जाने पर, हमारे पास मूल सूची का क्रमबद्ध पुनर्व्यवस्थापन होता है।


Make sure you understand every detail of the definition.

सुनिश्चित करें कि आप परिभाषा के हर विवरण को समझते हैं।


We offer a trace: isort[3,2] = insert3 (isort[2]) = insert3 (insert2 (isort[])) = insert3 (insert2 []) = insert3 [2] = 2 :: insert3 [] = 2 :: [3] = [2,3]

हम एक ट्रेस प्रदान करते हैं: isort[3,2] = insert3 (isort[2]) = insert3 (insert2 (isort[])) = insert3 (insert2 []) = insert3 [2] = 2 :: insert3 [] = 2 :: [3] = [2,3]


Note that isort inserts the elements of the input list reversing the order they appear in the input list.

ध्यान दें कि isort इनपुट सूची के तत्वों को उस क्रम को उलटते हुए सम्मिलित करता है जिस क्रम में वे इनपुट सूची में दिखाई देते हैं।


More elegantly, we may say that the insertion function preserves sortedness.

अधिक सुरुचिपूर्ण ढंग से, हम कह सकते हैं कि सम्मिलन फ़ंक्शन क्रमबद्धता को संरक्षित करता है।


Declaring the functions insert and isort in OCaml is now routine.

OCaml में insert और isort फ़ंक्शन की घोषणा करना अब नियमित है।


There is, however, the surprise that OCaml derives polymorphic types for insert and isort if no type specification is given.

हालांकि, आश्चर्य की बात यह है कि यदि कोई प्रकार विनिर्देश नहीं दिया गया है तो OCaml insert और isort के लिए बहुरूपी प्रकार प्राप्त करता है।


This follows from the fact that OCaml accommodates comparisons with the polymorphic type.

यह इस तथ्य से आता है कि OCaml बहुरूपी प्रकार के साथ तुलना को समायोजित करता है।


We will explain later how comparisons behave on tuples and lists.

हम बाद में समझाएंगे कि टुपल्स और सूचियों पर तुलना कैसे व्यवहार करती है।


For boolean values, OCaml realizes the order false < true.

बूलियन मानों के लिए, OCaml क्रम false < true को महसूस करता है।


Thus we have isort[true,false,false,true] = [false,false,true,true]

इस प्रकार हमारे पास isort[true,false,false,true] = [false,false,true,true] है


Declare a function that tests whether a list is sorted.

एक फ़ंक्शन घोषित करें जो परीक्षण करता है कि क्या कोई सूची क्रमबद्ध है।


टेल रिकर्सन का प्रयोग करें।


Write the function with a generalized match and show how the generalized match translates into simple matches.

फ़ंक्शन को एक सामान्यीकृत मिलान के साथ लिखें और दिखाएं कि सामान्यीकृत मिलान कैसे सरल मिलानों में अनुवादित होता है।


Declare a function that tests whether two lists are equal up to reordering.

एक फ़ंक्शन घोषित करें जो परीक्षण करता है कि क्या दो सूचियाँ पुन: क्रमबद्ध होने तक समान हैं।


Declare a function that reorders a list such that the elements appear in descending order.

एक फ़ंक्शन घोषित करें जो एक सूची को पुन: व्यवस्थित करता है ताकि तत्व अवरोही क्रम में दिखाई दें।


उदाहरण के लिए, हम sort desc[5,3,2,5,2,3] = [5,5,3,3,2,2] चाहते हैं।


Declare a function that sorts a list and removes all duplicates.

एक फ़ंक्शन घोषित करें जो एक सूची को सॉर्ट करता है और सभी डुप्लिकेट को हटा देता है।


The list [1,2,3] may be depicted as the tree.

सूची [1,2,3] को पेड़ के रूप में दर्शाया जा सकता है।


It is important to keep in mind that the bracket notation [x1,...,xn] is just notation for a list obtained with n applications of cons from nil.

यह ध्यान रखना महत्वपूर्ण है कि ब्रैकेट नोटेशन [x1,...,xn] केवल nil से cons के n अनुप्रयोगों के साथ प्राप्त सूची के लिए एक संकेतन है।


Also keep in mind that every list is obtained with either the constructor nil or the constructor cons.

यह भी ध्यान रखें कि प्रत्येक सूची या तो कंस्ट्रक्टर nil या कंस्ट्रक्टर cons के साथ प्राप्त की जाती है।


Given a list [x1,...,xn], we call the values x1,...,xn the elements or the members of the list.

एक सूची [x1,...,xn] को देखते हुए, हम मान x1,...,xn को सूची के तत्व या सदस्य कहते हैं।


Despite the fact that tuples and lists both represent sequences, tuple types and list types are quite different.

इस तथ्य के बावजूद कि टुपल्स और सूचियाँ दोनों अनुक्रमों का प्रतिनिधित्व करती हैं, टुपल प्रकार और सूची प्रकार काफी भिन्न हैं।


A tuple type t1 ×···×tn admits only tuples of length n, but may fix different types for different components.

एक टुपल प्रकार t1 ×···×tn केवल लंबाई n के टुपल्स को स्वीकार करता है, लेकिन विभिन्न घटकों के लिए विभिन्न प्रकारों को ठीक कर सकता है।


A list type L(t) admits lists [x1,...,xn] of any length but fixes a single type t for all elements.

एक सूची प्रकार L(t) किसी भी लंबाई की सूचियों [x1,...,xn] को स्वीकार करता है लेकिन सभी तत्वों के लिए एक ही प्रकार t को ठीक करता है।


We start with the definition of a polymorphic function length: ∀α. L(α)→N length[] := 0 length(x::l) := 1 + length l

हम एक बहुरूपी फ़ंक्शन लंबाई की परिभाषा से शुरू करते हैं: ∀α. L(α)→N लंबाई[] := 0 लंबाई(x::l) := 1 + लंबाई l


Another prominent list operation is concatenation: @ :∀α. L(α)→L(α)→L(α) [] @ l2 := l2 (x::l1) @ l2 := x:: (l1 @ l2)

एक अन्य प्रमुख सूची संचालन संयोजन है: @ :∀α. L(α)→L(α)→L(α) [] @ l2 := l2 (x::l1) @ l2 := x:: (l1 @ l2)


We call l1 @ l2 the concatenation of l1 and l2.

हम l1 @ l2 को l1 और l2 का संयोजन कहते हैं।


How can we define an operation reversing lists: rev[x1,...,xn] = [xn,...,x1]

हम सूचियों को उलटने की एक संक्रिया को कैसे परिभाषित कर सकते हैं: rev[x1,...,xn] = [xn,...,x1]


To define rev, we need defining equations for nil and cons.

rev को परिभाषित करने के लिए, हमें nil और cons के लिए समीकरणों को परिभाषित करने की आवश्यकता है।


The defining equation for nil is obvious, since the reversal of the empty list is the empty list.

nil के लिए परिभाषित समीकरण स्पष्ट है, क्योंकि खाली सूची का उलटा खाली सूची है।


For cons we use the equation rev(x::l) = rev(l) @ [x] which expresses a basic fact about reversal.

cons के लिए हम समीकरण rev(x::l) = rev(l) @ [x] का उपयोग करते हैं जो उलटने के बारे में एक बुनियादी तथ्य को व्यक्त करता है।


This brings us to the following definition of list reversal: rev:∀α. L(α)→ rev[] := [] rev(x::l) := rev(l) @ [x]

यह हमें सूची उलटने की निम्नलिखित परिभाषा पर लाता है: rev:∀α. L(α)→ rev[] := [] rev(x::l) := rev(l) @ [x]


We can also define a tail recursive list reversal function.

हम एक पूंछ पुनरावर्ती सूची उलटा फ़ंक्शन भी परिभाषित कर सकते हैं।


As usual we need an accumulator argument.

हमेशा की तरह हमें एक संचायक तर्क की आवश्यकता होती है।


The resulting function combines reversal and concatenation: revappend:∀α. L(α)→L(α)→L(α) revappend[] l2 := l2 revappend(x::l1) l2 := revappend l1 (x::l2)

परिणामी फ़ंक्शन उलटा और संयोजन को जोड़ता है: revappend:∀α. L(α)→L(α)→L(α) revappend[] l2 := l2 revappend(x::l1) l2 := revappend l1 (x::l2)


The type checker verifies the correctness of expressions.

टाइप चेकर भावों की शुद्धता की जांच करता है।


If this is the case, check yields the unique type of the expression.

यदि ऐसा है, तो जांच अभिव्यक्ति का अद्वितीय प्रकार देती है।


Expressions containing untyped lambda expressions count as ill-typed.

अटाईप्ड लैम्डा भावों वाले भावों को गलत टाइप माना जाता है।


The type checker matches on the given expression.

टाइप चेकर दिए गए भाव पर मेल खाता है।


We are using helper functions for operator and function applications.

हम ऑपरेटर और फ़ंक्शन अनुप्रयोगों के लिए सहायक कार्यों का उपयोग कर रहे हैं।


The evaluator matches on the given expression.

मूल्यांकनकर्ता दिए गए भाव पर मेल खाता है।


मिनी-ओकैमल के लिए लेक्सर को काम करने की आवश्यकता है।


The first step consists in declaring a constructor type for tokens.

पहला कदम टोकन के लिए एक कंस्ट्रक्टर प्रकार घोषित करने में शामिल है।


We realize the lexer with 5 mutually tail-recursive functions.

हम 5 पारस्परिक टेल-रिकर्सिव कार्यों के साथ लेक्सर का एहसास करते हैं।


There is some cleverness in this design.

इस डिज़ाइन में कुछ चतुराई है।


The constant true and false and keywords like if are first recognized as identifiers.

स्थिर सत्य और असत्य और यदि जैसे कीवर्ड को पहले पहचानकर्ता के रूप में पहचाना जाता है।


The parsing grammar for Mini-OCaml expressions has 6 levels.

मिनी-ओकैमल भावों के लिए पार्सिंग व्याकरण में 6 स्तर हैं।


The top level takes care of the prefix phrases.

शीर्ष स्तर उपसर्ग वाक्यांशों का ध्यान रखता है।


Additive and multiplicative operators and function applications are realized with left-associativity.

योजक और गुणात्मक ऑपरेटर और फ़ंक्शन अनुप्रयोगों को बाएं-सहयोगिता के साथ महसूस किया जाता है।


The bottom level takes care of variables, constants, and parenthesized expressions.

निचला स्तर चर, स्थिरांक और कोष्ठक भावों का ध्यान रखता है।


We follow OCaml’s concrete syntax for typed lambda expressions.

हम टाइप किए गए लैम्डा भावों के लिए ओकैमल के ठोस वाक्यविन्यास का पालन करते हैं।


The project counts as the test for this week.

परियोजना इस सप्ताह के लिए परीक्षा के रूप में गिनी जाती है।


हमें उम्मीद है कि आपको परियोजना पसंद आएगी।


There are many interesting issues and add-ons you may explore.

ऐसे कई दिलचस्प मुद्दे और ऐड-ऑन हैं जिन्हें आप तलाश सकते हैं।


Often there are several algorithms solving a given computational task.

अक्सर कई एल्गोरिदम एक दिए गए कम्प्यूटेशनल कार्य को हल करते हैं।


The running time of the algorithm is a crucial factor in its efficiency.

एल्गोरिदम का रनिंग टाइम उसकी दक्षता में एक महत्वपूर्ण कारक है।


Consider ternary trees as follows: tree::=A|B(tree,tree,tree)

टर्नेरी ट्री पर इस प्रकार विचार करें: ट्री::=ए|बी(ट्री,ट्री,ट्री)


Big O notation is also known as Bachmann–Landau notation or asymptotic notation.

बिग ओ नोटेशन को बाकमैन-लैंडौ नोटेशन या एसिम्प्टोटिक नोटेशन के रूप में भी जाना जाता है।


The worst-case assumption is a key concept in analyzing algorithm performance.

सबसे खराब स्थिति की धारणा एल्गोरिदम के प्रदर्शन का विश्लेषण करने में एक महत्वपूर्ण अवधारणा है।


For lists, typically their length is taken as size.

सूचियों के लिए, आमतौर पर उनकी लंबाई को आकार के रूप में लिया जाता है।


The path from the initial call to the current call is stored in the call stack.

प्रारंभिक कॉल से वर्तमान कॉल तक का पथ कॉल स्टैक में संग्रहीत है।


In contrast to functional programming languages, most programming languages severely limit the available call depth.

कार्यात्मक प्रोग्रामिंग भाषाओं के विपरीत, अधिकांश प्रोग्रामिंग भाषाएँ उपलब्ध कॉल गहराई को गंभीर रूप से सीमित करती हैं।


We will prove properties of functions defined with equations and terminating recursion.

हम समीकरणों और समापन पुनरावर्तन के साथ परिभाषित कार्यों के गुणों को साबित करेंगे।


Propositions are mathematical statements that may be true or false.

प्रस्ताव गणितीय कथन हैं जो सत्य या असत्य हो सकते हैं।


Proofs are mathematical constructions that demonstrate the truth of propositions.

प्रमाण गणितीय निर्माण हैं जो प्रस्तावों की सच्चाई को दर्शाते हैं।


To prove a conjunction P∧Q, one proves both P and Q.

एक संयोजन P∧Q को साबित करने के लिए, कोई P और Q दोनों को साबित करता है।


Equations are a basic form of propositions.

समीकरण प्रस्तावों का एक बुनियादी रूप हैं।


The equations can be shown by equational reasoning using the defining equations of the functions.

समीकरणों को कार्यों के परिभाषित समीकरणों का उपयोग करके समीकरण तर्क द्वारा दिखाया जा सकता है।


We will demonstrate equational reasoning and the use of list induction.

हम समीकरण तर्क और सूची प्रेरण के उपयोग का प्रदर्शन करेंगे।


शून्य मामला सरलीकरण से मान्य है।


Cons case: (x::l) @ [] = x::l simplification x:: (l@ []) induction x::l

कंस केस: (x::l) @ [] = x::l सरलीकरण x:: (l@ []) प्रेरण x::l


The compact format arranges things such that the inductive hypothesis is identical with the claim that is proven.

कॉम्पैक्ट प्रारूप चीजों को इस तरह व्यवस्थित करता है कि आगमनात्मक परिकल्पना उस दावे के समान है जो सिद्ध है।


We now use equational reasoning and list induction to prove equational properties of list reversal.

अब हम सूची उलटने के समीकरण गुणों को साबित करने के लिए समीकरण तर्क और सूची प्रेरण का उपयोग करते हैं।


We start with the definition of naive list reversal: rev:∀α. L(α)→L(α)

हम भोले-भाले सूची उलटने की परिभाषा से शुरू करते हैं: rev:∀α. L(α)→L(α)


The function induction is used to prove properties of recursive functions.

फ़ंक्शन इंडक्शन का उपयोग पुनरावर्ती कार्यों के गुणों को साबित करने के लिए किया जाता है।


Euclid's algorithm efficiently computes the greatest common divisor.

यूक्लिड का एल्गोरिदम कुशलतापूर्वक सबसे बड़ा सामान्य भाजक की गणना करता है।


Complete induction allows assuming proofs of all propositions.

पूर्ण प्रेरण सभी प्रस्तावों के प्रमाणों को मानने की अनुमति देता है।


Arrays are mutable data structures in programming.

एरे प्रोग्रामिंग में परिवर्तनशील डेटा संरचनाएं हैं।


The array's length and element type are fixed at allocation time.

एरे की लंबाई और तत्व प्रकार आवंटन समय पर तय होते हैं।


Array elements can be overwritten by an update operation.

एरे के तत्वों को अपडेट ऑपरेशन द्वारा ओवरराइट किया जा सकता है।


OCaml provides arrays through the standard structure Array.

OCaml मानक संरचना Array के माध्यम से एरे प्रदान करता है।


Array.make allocates a fresh array with a given length and value.

Array.make एक दी गई लंबाई और मान के साथ एक नया एरे आवंटित करता है।


The Array.get operation yields the element at a specific index.

Array.get ऑपरेशन एक विशिष्ट इंडेक्स पर तत्व देता है।


Array.set updates the element at a given index with a new value.

Array.set एक दिए गए इंडेक्स पर तत्व को एक नए मान के साथ अपडेट करता है।


Sequentializations execute expressions in a specific order.

अनुक्रमिकरण एक विशिष्ट क्रम में भावों को निष्पादित करते हैं।


Arrays can be converted to lists and vice versa.

एरे को सूचियों में और इसके विपरीत परिवर्तित किया जा सकता है।


The function to_list converts an array to a list.

फ़ंक्शन to_list एक एरे को एक सूची में परिवर्तित करता है।


The function of_list converts a list to an array.

फ़ंक्शन of_list एक सूची को एक एरे में परिवर्तित करता है।


Binary search efficiently finds an element in a sorted array.

बाइनरी सर्च एक सॉर्ट किए गए एरे में एक तत्व को कुशलतापूर्वक ढूंढता है।


The running time of binary search is logarithmic.

बाइनरी सर्च का रनिंग टाइम लॉगरिदमिक है।


The key difference between lists and arrays is mutability.

सूचियों और एरे के बीच मुख्य अंतर परिवर्तनशीलता है।


Mutability is an intrinsic aspect of physical objects.

परिवर्तनशीलता भौतिक वस्तुओं का एक आंतरिक पहलू है।


Immutability is a characteristic feature of mathematical objects.

अपरिवर्तनशीलता गणितीय वस्तुओं की एक विशिष्ट विशेषता है।


Arrays don't have a direct mathematical representation.

एरे का कोई सीधा गणितीय प्रतिनिधित्व नहीं होता है।


The list [10,11,12] may be stored with three blocks connected through links.

सूची [10,11,12] को तीन खंडों के साथ संग्रहीत किया जा सकता है जो लिंक के माध्यम से जुड़े हुए हैं।


A heap is an array where mutable fixed-length sequences of machine integers called blocks are stored.

एक ढेर एक सरणी है जहाँ मशीन पूर्णांकों के परिवर्तनशील निश्चित-लंबाई अनुक्रमों को ब्लॉक कहा जाता है।


Links always point to blocks and are represented through the addresses of the blocks.

लिंक हमेशा ब्लॉक की ओर इशारा करते हैं और ब्लॉक के पतों के माध्यम से दर्शाए जाते हैं।


The function get yields the value in the field of a block.

फंक्शन 'गेट' एक ब्लॉक के फ़ील्ड में मान देता है।


ब्लॉक की लंबाई कम से कम 1 होनी चाहिए।


We implement the heap with the following structure.

हम निम्नलिखित संरचना के साथ ढेर को लागू करते हैं।


The exception address signals an address error.

अपवाद पता एक पते की त्रुटि का संकेत देता है।


It is now straightforward to declare a function.

अब एक फ़ंक्शन की घोषणा करना सीधा है।


Note that putlist and getlist also work for the empty list.

ध्यान दें कि 'पुटलिस्ट' और 'गेटलिस्ट' खाली सूची के लिए भी काम करते हैं।


Block representation works for constructor types in general.

ब्लॉक प्रतिनिधित्व सामान्य रूप से कंस्ट्रक्टर प्रकारों के लिए काम करता है।


If there are no arguments, we don’t need a block.

यदि कोई तर्क नहीं हैं, तो हमें एक ब्लॉक की आवश्यकता नहीं है।


As example we consider AB- and ABC-trees.

उदाहरण के लिए, हम एबी- और एबीसी-ट्री पर विचार करते हैं।


For AB- trees we don’t need a tag field.

एबी-ट्री के लिए हमें एक टैग फ़ील्ड की आवश्यकता नहीं है।


We now see that the block representation with no structure sharing is exponentially larger.

अब हम देखते हैं कि बिना संरचना साझाकरण के ब्लॉक प्रतिनिधित्व घातीय रूप से बड़ा है।


Consider the ABC-tree B(C(A,B(A,A)), B(A,A)) with a block representation.

ब्लॉक प्रतिनिधित्व के साथ एबीसी-ट्री बी (सी (ए, बी (ए, ए)), बी (ए, ए)) पर विचार करें।


OCaml interpreter stores the values of constructor types it computes with in a heap.

ओकैमल इंटरप्रेटर एक ढेर में कंस्ट्रक्टर प्रकारों के मान संग्रहीत करता है जिसकी वह गणना करता है।


If we use the function to obtain the maximal AB-tree of depth n, we are guaranteed to obtain a heap representation.

यदि हम गहराई n के अधिकतम AB-ट्री को प्राप्त करने के लिए फ़ंक्शन का उपयोग करते हैं, तो हमें एक ढेर प्रतिनिधित्व प्राप्त करने की गारंटी है।


On the other hand, the function will construct a heap representation without structure sharing.

दूसरी ओर, फ़ंक्शन बिना संरचना साझाकरण के एक ढेर प्रतिनिधित्व का निर्माण करेगा।


Thus is naive in that it takes exponential space and exponential time where linear space and linear time would suffice.

इस प्रकार यह भोला है कि यह घातीय स्थान और घातीय समय लेता है जहां रैखिक स्थान और रैखिक समय पर्याप्त होगा।


Declare a function that writes the maximal AB-tree of depth n into the heap.

एक फ़ंक्शन घोषित करें जो गहराई n के अधिकतम AB-ट्री को ढेर में लिखता है।


Binary search is usually realized such that in the positive case it returns an index where the element searched for occurs.

बाइनरी सर्च आमतौर पर इस तरह से महसूस किया जाता है कि सकारात्मक मामले में यह एक इंडेक्स लौटाता है जहां खोजा गया तत्व होता है।


The running time of lsearch should be O(n) where n is the length of the array.

lsearch का रनिंग टाइम O(n) होना चाहिए जहाँ n सरणी की लंबाई है।


The algorithm now reverses a segment i < j in an array by swapping the values at i and j and continuing with the smaller segment (i+ 1,j−1).

अब एल्गोरिदम i और j पर मानों की अदला-बदली करके और छोटे खंड (i+ 1,j−1) के साथ जारी रखकर एक सरणी में एक खंड i < j को उलट देता है।


For instance, rotation changes the state [1,2,3] of an array to [3,1,2].

उदाहरण के लिए, रोटेशन एक सरणी की स्थिति [1,2,3] को [3,1,2] में बदल देता है।


The running time of selection sort is quadratic in the length of the array.

चयन सॉर्ट का रनिंग टाइम सरणी की लंबाई में द्विघात होता है।


Quick sort partitions an array into two segments using swapping, where all elements of the left segment are smaller than all elements of the right segment.

क्विक सॉर्ट एक सरणी को स्वैपिंग का उपयोग करके दो खंडों में विभाजित करता है, जहाँ बाएं खंड के सभी तत्व दाएं खंड के सभी तत्वों से छोटे होते हैं।


It is easy to verify that qsort terminates and sorts the given array if partition has the properties specified.

यह सत्यापित करना आसान है कि यदि विभाजन में निर्दिष्ट गुण हैं तो qsort समाप्त हो जाता है और दी गई सरणी को सॉर्ट करता है।


The partitioning algorithm is subtle in that it cannot be understood without the invariants.

विभाजन एल्गोरिदम सूक्ष्म है कि इसे इनवेरिएंट के बिना समझा नहीं जा सकता है।


OCaml’s polymorphic equality test = :∀α. α→α→B considers two arrays as equal if their states are equal.

OCaml का बहुरूपी समानता परीक्षण = :∀α. α→α→B दो सरणियों को समान मानता है यदि उनकी स्थितियाँ समान हैं।


We will refer to = as structural equality and to == as physical equality.

हम = को संरचनात्मक समानता और == को भौतिक समानता के रूप में संदर्भित करेंगे।


As soon as mutable objects are involved, the order in which expressions and declarations are executed plays an important role.

जैसे ही परिवर्तनशील वस्तुएँ शामिल होती हैं, जिस क्रम में भाव और घोषणाएँ निष्पादित की जाती हैं, वह एक महत्वपूर्ण भूमिका निभाता है।


We remark that execution order as we discuss it here is only observable through side effects.

हम ध्यान देते हैं कि निष्पादन क्रम जैसा कि हम यहां चर्चा करते हैं, केवल साइड इफेक्ट के माध्यम से ही देखने योग्य है।


OCaml provides single field arrays called cells using a type family ref(t) and three operations.

OCaml एक प्रकार के परिवार ref(t) और तीन ऑपरेशनों का उपयोग करके कोशिकाओं नामक एकल क्षेत्र सरणियाँ प्रदान करता है।


Now the declarations bind their identifiers to the values given at the right.

अब घोषणाएँ अपने पहचानकर्ताओं को दाईं ओर दिए गए मानों से बांधती हैं।


We can change the declaration of next such that the function encapsulates the cell storing its state.

हम next की घोषणा को बदल सकते हैं ताकि फ़ंक्शन उस सेल को समाहित करे जो अपनी स्थिति संग्रहीत करता है।


In this chapter we consider array-based data structures known as stacks, queues, and heaps that are essential for machine-oriented programming.

इस अध्याय में हम सरणी-आधारित डेटा संरचनाओं पर विचार करते हैं जिन्हें स्टैक, कतार और ढेर के रूप में जाना जाता है जो मशीन-उन्मुख प्रोग्रामिंग के लिए आवश्यक हैं।


OCaml offers a facility to bundle declarations into a structure and to restrict the visibility of the declarations with a signature.

OCaml एक संरचना में घोषणाओं को बंडल करने और एक हस्ताक्षर के साथ घोषणाओं की दृश्यता को प्रतिबंधित करने की सुविधा प्रदान करता है।


There is type checking that ensures that the structure implements the fields the signature requires with the required types.

टाइप चेकिंग है जो यह सुनिश्चित करती है कि संरचना उन फ़ील्ड को लागू करती है जिनकी हस्ताक्षर को आवश्यक प्रकारों के साथ आवश्यकता होती है।


The operation make allocates a stack with a given single element.

ऑपरेशन मेक एक दिए गए एकल तत्व के साथ एक स्टैक आवंटित करता है।


For queues we may have the signature and the implementation.

कतारों के लिए हमारे पास हस्ताक्षर और कार्यान्वयन हो सकता है।