The derivation system was chosen for explanation.

व्युत्पन्न प्रणाली स्पष्टीकरणासाठी निवडली गेली.


In practice, derivation systems describe computational relations.

व्यवहारात, व्युत्पन्न प्रणाली संगणकीय संबंधांचे वर्णन करतात.


Typing and evaluation of expressions are examples of such relations.

व्युत्पत्ती आणि अभिव्यक्तींचे मूल्यांकन अशा संबंधांची उदाहरणे आहेत.


5 < 9 साठी सर्व व्युत्पत्ती द्या.


Give two inference rules for judgments x < y.

x < y या निर्णयांसाठी दोन अनुमान नियम द्या.


The semantic layers see phrases as abstract syntactic objects.

अर्थपूर्ण स्तर वाक्यांशांना अमूर्त वाक्यरचना वस्तू म्हणून पाहतात.


We switch to a language of abstract expressions.

आम्ही अमूर्त अभिव्यक्तींच्या भाषेकडे वळतो.


The new language has types as considered before.

नवीन भाषेत पूर्वी विचारात घेतलेले प्रकार आहेत.


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

स्थिरांक हे int, bool आणि string या प्रकारची मूल्ये आहेत.


Variables introduced by lambda expressions are called local variables.

लॅम्डा अभिव्यक्तींद्वारे सादर केलेले व्हेरिएबल्स स्थानिक व्हेरिएबल्स म्हणतात.


Tuple patterns are replaced by projections.

टपल नमुने प्रक्षेपण (प्रोजेक्शन) द्वारे बदलले जातात.


It is possible to translate concrete expressions.

ठोस अभिव्यक्तींचे भाषांतर करणे शक्य आहे.


We formulate the static semantics using typing judgments.

आम्ही टायपिंग निर्णयांचा वापर करून स्थिर अर्थशास्त्र तयार करतो.


An environment is a finite collection of bindings.

पर्यावरण हे बंधनांचे मर्यादित संकलन आहे.


Here is an example for a typing judgment.

येथे टायपिंग निर्णयाचे उदाहरण आहे.


The inference rules establish a derivation system.

अनुमान नियम व्युत्पन्न प्रणाली स्थापित करतात.


We will refer to the rules as typing rules.

आम्ही नियमांचा संदर्भ टायपिंग नियम म्हणून देऊ.


The environment is needed so that e can contain variables.

पर्यावरणाची आवश्यकता आहे जेणेकरून e मध्ये व्हेरिएबल्स असू शकतील.


We say that an expression is well typed.

आम्ही म्हणतो की एक अभिव्यक्ती चांगल्या प्रकारे टाइप केलेली आहे.


OCaml will only execute well-typed programs.

OCaml केवळ चांगल्या प्रकारे टाइप केलेले प्रोग्राम कार्यान्वित करेल.


Tail recursion is often more efficient than general recursion.

शेपूट पुनरावृत्ती सामान्य पुनरावृत्तीपेक्षा अधिक कार्यक्षम असते.


The function `gcd` is a typical example of tail recursion.

`gcd` हे कार्य शेपूट पुनरावृत्तीचे एक सामान्य उदाहरण आहे.


In imperative programming, tail recursion can be expressed with loops.

आज्ञाधारक प्रोग्रामिंगमध्ये, शेपूट पुनरावृत्ती लूप्ससह व्यक्त केली जाऊ शकते.


Functional programming languages often prefer tail recursive functions over loops.

कार्यात्मक प्रोग्रामिंग भाषा अनेकदा लूप्सपेक्षा शेपूट पुनरावृत्ती कार्यांना प्राधान्य देतात.


Tail recursive functions can be easily traced during execution.

शेपूट पुनरावृत्ती कार्यांचा अंमलबजावणी दरम्यान सहज मागोवा घेतला जाऊ शकतो.


5 चा फॅक्टोरियल 120 आहे.


Tuples can represent multiple values returned by a function.

ट्यूपल्स एका फंक्शनद्वारे परत केलेली एकाधिक मूल्ये दर्शवू शकतात.


मॅरेथॉनची वेळ 2:01:39 होती.


OCaml uses tuples to represent collections of values.

OCaml मूल्यांचे संग्रह दर्शविण्यासाठी ट्यूपल्सचा वापर करते.


The components of a tuple are not restricted to integers.

ट्यूपलचे घटक पूर्णांकांपुरते मर्यादित नाहीत.


We can write functions to translate between total seconds and (h, m, s) tuples.

आम्ही एकूण सेकंद आणि (तास, मिनिटे, सेकंद) ट्यूपल्समध्ये रूपांतरित करण्यासाठी कार्ये लिहू शकतो.


What happens when we execute 5/0 in OCaml?

जेव्हा आपण OCaml मध्ये 5/0 कार्यान्वित करतो, तेव्हा काय होते?


Exceptions can be useful when debugging erroneous programs.

त्रुटीपूर्ण प्रोग्राम्सचे डीबगिंग करताना अपवाद उपयुक्त ठरू शकतात.


At the mathematical level, we use types like N+ to exclude undefined applications.

गणितीय स्तरावर, आम्ही अपरिभाषित ऍप्लिकेशन्स वगळण्यासाठी N+ सारखे प्रकार वापरतो.


Spurious arguments are not anticipated by the mathematical function.

गणितीय कार्याद्वारे अवास्तव युक्तिवादांची अपेक्षा केली जात नाही.


A wrapper function can raise exceptions when spurious arguments show up.

अवास्तव युक्तिवाद दर्शविल्यास एक रॅपर फंक्शन अपवाद वाढवू शकते.


Strings are values like integers and booleans.

स्ट्रिंग्ज पूर्णांक आणि बुलियन मूल्यांसारखीच मूल्ये आहेत.


The predefined function `invalid_arg` raises an exception.

पूर्वनिर्धारित कार्य `invalid_arg` एक अपवाद निर्माण करते.


When an exception is raised, execution of a program is aborted.

जेव्हा एखादा अपवाद निर्माण होतो, तेव्हा प्रोग्रामची अंमलबजावणी थांबते.


After working through this chapter, you should be able to design and code functions.

या प्रकरणातून काम केल्यानंतर, आपण कार्ये डिझाइन आणि कोड करण्यास सक्षम असाल.


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

हा कार्यक्रम 'a' या ओळखीच्या चिन्हाला 8 या पूर्णांकाशी जोडतो.


After the program has been executed successfully, the interpreter will show the values it has computed.

कार्यक्रमाचे यशस्वीरित्या अंमलबजावणी झाल्यावर, इंटरप्रिटरने मोजलेली मूल्ये दर्शवेल.


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

हा अभ्यासक्रम पहिल्या सत्रातील अभ्यासाच्या वेळेपैकी सुमारे एक तृतीयांश वेळ घेण्यासाठी तयार केला आहे.


We assume that incoming students are familiar with mathematical thinking.

आम्ही असे मानतो की नव्याने येणारे विद्यार्थी गणिती विचारांशी परिचित आहेत.


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

इंटरप्रिटर तपासतो की दिलेला मजकूर प्रोग्राम म्हणून अर्थ लावला जाऊ शकतो.


प्रत्येक अभिव्यक्तीचा एक प्रकार असतो.


The values of the type int are integers.

int प्रकारची मूल्ये पूर्णांक संख्या असतात.


In contrast to the infinite mathematical type Z, OCaml’s type int provides only a finite interval.

अनंत गणिती प्रकार Z च्या तुलनेत, OCaml चा int प्रकार फक्त मर्यादित अंतराल प्रदान करतो.


We will usually ignore the machine integers and just assume that all integers are available.

आम्ही सामान्यतः मशीन पूर्णांकांकडे दुर्लक्ष करू आणि असे मानू की सर्व पूर्णांक उपलब्ध आहेत.


The new English text realizes some substantial changes.

नवीन इंग्रजी मजकूर काही महत्त्वपूर्ण बदल दर्शवितो.


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

हा अभ्यासक्रम हिवाळी सत्रात 15 आठवड्यांचा असतो.


Each week comes with two lectures, an exercises assignment, office hours, tutorials, and a test.

प्रत्येक आठवड्यात दोन व्याख्याने, व्यायामाचे काम, ऑफिस तास, मार्गदर्शन आणि एक परीक्षा असते.


There is a midterm exam in December and a final exam after the lecture period has finished.

डिसेंबरमध्ये मध्यावधी परीक्षा आणि व्याख्यान कालावधी संपल्यानंतर अंतिम परीक्षा असते.


The take home project should be considered an important part of the course.

घरी करण्यासाठी दिलेला प्रकल्प, अभ्यासक्रमाचा एक महत्त्वाचा भाग मानला पाहिजे.


We concentrate on recursive functions on integers computing things like powers.

आम्ही पूर्णांकांवरील पुनरावृत्ती कार्यांवर लक्ष केंद्रित करतो जे शक्तीसारख्या गोष्टींची गणना करतात.


We also formulate a general algorithm known as linear search as a higher-order function.

आम्ही एक सामान्य अल्गोरिदम देखील तयार करतो, ज्याला उच्च-क्रम कार्य म्हणून रेखीय शोध म्हणून ओळखले जाते.


Functions are designed at a mathematical level using types and equations before they are coded.

कार्ये तयार करण्यापूर्वी, प्रकार आणि समीकरणांचा वापर करून गणिती स्तरावर डिझाइन केली जातात.


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

'a' या ओळखीच्या चिन्हाची दुसरी घोषणा 'a' च्या पहिल्या घोषणेवर सावली करते.


Shadowing does not affect the binding of 'b' since it is obtained before the second declaration of 'a' is executed.

'b' च्या बंधनावर सावलीचा परिणाम होत नाही कारण 'a' ची दुसरी घोषणा अंमलात येण्यापूर्वी ते प्राप्त होते.


The parentheses in 2 * (x + y) - 3 are not redundant and are needed to make the expression x + y the right argument.

2 * (x + y) - 3 मधील कंस अनावश्यक नाहीत आणि x + y या अभिव्यक्तीला योग्य युक्तिवाद बनवण्यासाठी आवश्यक आहेत.


When we program, expressions are written as sequences of characters.

जेव्हा आपण प्रोग्राम लिहितो, तेव्हा अभिव्यक्ती अक्षरांच्या क्रमांमध्ये लिहिली जातात.


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

अक्षरांच्या क्रमांचे अमूर्त अभिव्यक्तींमध्ये रूपांतरण करण्याचे नियम भाषेच्या ठोस व्याकरणानुसार निश्चित केले जातात.


The part of the concrete syntax concerned with characters and words is known as lexical syntax.

ठोस व्याकरणाचा भाग जो अक्षरे आणि शब्दांशी संबंधित आहे, त्याला शब्दकोषीय व्याकरण म्हणून ओळखले जाते.


In the lexical representation of an expression, subexpressions can be indicated with parentheses.

एखाद्या अभिव्यक्तीच्या शब्दकोषीय प्रतिनिधित्वात, उप-अभिव्यक्ती कंस वापरून दर्शविल्या जाऊ शकतात.


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.

अभिव्यक्तींच्या लेखी प्रतिनिधित्वासाठी आवश्यक कंसांची संख्या कमी करण्यासाठी, भाषेचे ठोस व्याकरण ऑपरेटर प्राधान्ये आणि गटबद्ध करण्याचे नियम निश्चित करते.


We also have types as abstract syntactic objects.

आपल्याकडे अमूर्त वाक्यरचना वस्तू म्हणून प्रकार देखील आहेत.


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.

गतिक अर्थशास्त्र कार्यात्मक मूल्यांचे प्रतिनिधित्व क्लोजर म्हणून करते, जे मुक्त व्हेरिएबल्ससाठी मूल्ये प्रदान करणार्‍या मूल्य वातावरणासह फंक्शनचे वाक्यरचनात्मक वर्णन एकत्र करते.


The semantic systems of a language are described as so-called derivation systems consisting of inference rules for syntactic objects called judgments.

एका भाषेतील अर्थपूर्ण प्रणालींना तथाकथित व्युत्पन्न प्रणाली म्हणून वर्णन केले जाते, ज्यात निर्णयांना वाक्यरचनात्मक वस्तूंचे अनुमान नियम असतात.


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 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.

मूल्यांकन मूल्ये मोजत असताना, प्रकार तपासणी प्रकार मोजते.


Every programming language provides machine integers for efficiency.

प्रत्येक प्रोग्रामिंग भाषा कार्यक्षमतेसाठी मशीन इंटिजर्स प्रदान करते.


There are techniques for realizing much larger intervals of integers based on machine integers in programming languages.

प्रोग्रामिंग भाषांमध्ये मशीन इंटिजर्सवर आधारित इंटिजर्सचे मोठे अंतराल (intervals) साकारण्याची तंत्रे आहेत.


Things become interesting once we declare functions.

एकदा आपण फंक्शन्स घोषित केले की, गोष्टी मनोरंजक बनतात.


Can we compute a power x^8 with just three multiplications?

फक्त तीन गुणाकारांनी आपण x^8 ची शक्ती मोजू शकतो का?


Another possibility is the declaration let pow8' x = let a = x * in let b = a * in b * b.

दुसरी शक्यता म्हणजे घोषणा let pow8' x = let a = x * in let b = a * in b * b आहे.


Local declarations are obtained with let expressions let d in combining a declaration d with an expression e using the keywords let and in.

स्थानिक घोषणा let expressions let d in सह मिळवल्या जातात, ज्यात let आणि in कीवर्ड वापरून d ची घोषणा e या अभिव्यक्तीसोबत जोडली जाते.


The declaration let abs x = if x < 0 then -x else x declares a function abs: int -> int returning the absolute value of an integer.

घोषणा let abs x = if x < 0 then -x else x हे abs: int -> int फंक्शन घोषित करते, जे एका पूर्णांकाचे निरपेक्ष मूल्य (absolute value) परत करते.


This is the first function we see taking two arguments.

हे पहिले फंक्शन आहे जे आपण दोन युक्तिवाद (arguments) घेताना पाहतो.


There is an explicit return type specification in the declaration (appearing as “: int”), which is needed so that max receives the correct type.

घोषणा मध्ये एक स्पष्ट रिटर्न प्रकार निर्दिष्ट केला आहे (”: int” म्हणून दर्शविलेले), जे आवश्यक आहे जेणेकरून max ला योग्य प्रकार मिळेल.


Next we declare a three-argument maximum function using a local declaration.

पुढे, आम्ही स्थानिक घोषणेचा वापर करून तीन-युक्तिवादाचे कमाल (maximum) फंक्शन घोषित करतो.


There is a type bool having two values true and false called booleans.

bool नावाचा एक प्रकार आहे, ज्यामध्ये दोन मूल्ये आहेत: true आणि false, ज्यांना boolean म्हणतात.


The comparison operator “≤” used for max (written “<=” in OCaml) is used with the functional type int -> int -> bool saying that an expression e1 <= e2 where both subexpressions e1 and e2 have type int has type bool.

max साठी वापरले जाणारे तुलना ऑपरेटर “≤” (OCaml मध्ये “<=” असे लिहिले जाते) कार्यात्मक प्रकार int -> int -> bool सह वापरले जाते, जे असे दर्शवते की e1 <= e2 हे एक असे अभिव्यक्ती आहे, जिथे दोन्ही उप-अभिव्यक्ती e1 आणि e2 चा प्रकार int आहे, आणि त्याचा प्रकार bool आहे.


We recall that powers satisfy the equations x^0 = 1 and x^(n+1) = x * x^n.

आम्हाला आठवते की शक्ती (powers) समीकरणे x^0 = 1 आणि x^(n+1) = x * x^n पूर्ण करतात.


The trick is that the 2nd equation reduces larger powers to smaller powers, so that after repeated application of the 2nd equation the power x^0 appears, which can be computed with the 1st equation.

युक्ती अशी आहे की दुसरे समीकरण मोठ्या शक्तींना लहान शक्तींमध्ये रूपांतरित करते, जेणेकरून दुसऱ्या समीकरणाचा वारंवार उपयोग केल्यावर x^0 शक्ती येते, जी पहिल्या समीकरणाने मोजली जाऊ शकते.


Recursive computations can be captured with recursive functions.

रिकर्सिव्ह (recursive) गणना रिकर्सिव्ह फंक्शन्स वापरून कॅप्चर करता येते.


We now declare a recursive function implementing this equation: let rec pow x n = if n < 1 then 1 else x * pow x (n - 1).

आता आपण हे समीकरण लागू करणारे एक रिकर्सिव्ह फंक्शन घोषित करतो: let rec pow x n = if n < 1 then 1 else x * pow x (n - 1).


The identifier pow receives the type pow: int -> int -> int.

pow या आयडेंटिफायरला pow: int -> int -> int हा प्रकार मिळतो.


We say that the function pow applies itself.

आपण म्हणतो की फंक्शन pow स्वतःलाच लागू करते.


Given two integers x ≥ 0 and y > 0, there exist unique integers k, r ≥ 0 such that x = k * y + r and r < y.

दोन पूर्णांक x ≥ 0 आणि y > 0 दिले असता, k, r ≥ 0 असे अद्वितीय पूर्णांक अस्तित्वात आहेत की x = k * y + r आणि r < y.


We call k the quotient and r the remainder of x and y.

आम्ही k ला भागाकार (quotient) आणि r ला x आणि y चा बाकी (remainder) म्हणतो.


कार्यक्रमाचा आउटपुट चुकीचा होता.


वेरिएबल्स स्ट्रिंग म्हणून दर्शविले जातात.


Constants can be either booleans or integers.

स्थिरांक एकतर बुलियन किंवा पूर्णांक असू शकतात.


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 parser translates strings into abstract syntax trees.

पार्सर स्ट्रिंगचे अमूर्त वाक्यरचना वृक्षांमध्ये भाषांतर करतो.


The process of translating string representations of syntactic objects is known as parsing.

सिंटॅक्टिक ऑब्जेक्ट्सच्या स्ट्रिंग प्रतिनिधित्वाचे भाषांतर करण्याच्या प्रक्रियेस पार्सिंग म्हणतात.


We will focus on a parsing method called recursive descent.

आम्ही पुनरावृत्ती उतरत्या नावाच्या पार्सिंग पद्धतीवर लक्ष केंद्रित करू.


Strings provide an efficient representation of sequences of characters.

स्ट्रिंग अक्षरांच्या क्रमांचे कार्यक्षम प्रतिनिधित्व प्रदान करतात.


The positions of a string are numbered starting from 0.

स्ट्रिंगची स्थिती 0 पासून सुरू होणारी क्रमांकित आहे.


OCaml has types for both strings and characters.

OCaml मध्ये स्ट्रिंग आणि वर्ण दोन्हीसाठी प्रकार आहेत.


The function String.get yields the character at a specific position.

String.get फंक्शन विशिष्ट स्थानावरील वर्ण दर्शवते.


A main advantage is the get operation is fast.

मुख्य फायदा म्हणजे 'get' ऑपरेशन जलद आहे.


The tail-recursive helper function recurses on the current position.

शेपटी-रिकर्सिव्ह हेल्पर फंक्शन वर्तमान स्थितीवर रिकर्स करते.


The rule for white space characters exploits a convenience of OCaml.

व्हाईट स्पेस वर्णांसाठीचा नियम OCaml च्या सोयीचा फायदा घेतो.


Recursive descent parsing is a standard method.

रिकर्सिव्ह डिसेंट पार्सिंग ही एक प्रमाणित पद्धत आहे.


The grammar describes a parsing function.

व्याकरण एक पार्सिंग फंक्शनचे वर्णन करते.


The parsing function terminates since both recursive applications are done with smaller token lists.

पार्सिंग फंक्शन समाप्त होते कारण दोन्ही पुनरावृत्ती ऍप्लिकेशन्स लहान टोकन सूचीसह पूर्ण होतात.


The new grammar rule is realized with an additional rule.

नवीन व्याकरण नियम अतिरिक्त नियमासह लागू केला जातो.


Given a nonempty list x::l (i.e., a list obtained with cons), we call x the head and l the tail of the list.

जर x::l (म्हणजे, कंस वापरून मिळवलेली यादी) एक रिक्त नसलेली यादी दिली, तर आपण x ला शीर्ष आणि l ला यादीचा शेपूट म्हणतो.


For instance, 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] हे फक्त शून्य पासून कंसच्या n अनुप्रयोगांसह मिळवलेल्या सूचीसाठी एक नोटेशन आहे.


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

हे देखील लक्षात ठेवा की प्रत्येक यादी एकतर शून्य किंवा कंस कन्स्ट्रक्टरने मिळवली जाते.


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

यादी [x1,...,xn] दिली, तर आपण x1,...,xn मूल्यांना यादीचे घटक किंवा सदस्य म्हणतो.


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 परिभाषित करण्यासाठी, आपल्याला शून्य आणि कंससाठी समीकरणे परिभाषित करणे आवश्यक आहे.


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

शून्यासाठीचे समीकरण स्पष्ट आहे, कारण रिक्त यादीची उलट यादी रिक्त यादी आहे.


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

कंससाठी, आपण समीकरण 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)


We start with the empty list, which is sorted, and insert the elements of one by one.

आपण रिकाम्या यादीने सुरुवात करतो, जी क्रमबद्ध आहे, आणि एक-एक करून घटक घालतो.


Once all elements are inserted, we have a sorted rearrangement of l.

एकदा सर्व घटक घातल्यावर, आपल्याकडे 'l' ची क्रमबद्ध पुनर्रचना असते.


Make sure you understand every detail of the definition.

तुम्ही व्याख्येचा प्रत्येक तपशील समजून घ्या.


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 साठी बहुरूपी प्रकार तयार करते, जर कोणताही प्रकार निर्दिष्ट केला नसेल तर:


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 sorted: ∀α. L(α) → B that tests whether a list is sorted.

sorted: ∀α. L(α) → B हे फंक्शन घोषित करा जे सूची क्रमबद्ध आहे की नाही हे तपासते.


शेवटची पुनरावृत्ती वापरा.


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

हे फंक्शन सामान्यीकृत जुळणीसह लिहा आणि सामान्यीकृत जुळणीचे साध्या जुळणीमध्ये रूपांतर कसे होते ते दर्शवा.


Declare a function perm: ∀α. L(α) → L(α) → B that tests whether two lists are equal up to reordering.

perm: ∀α. L(α) → L(α) → B हे फंक्शन घोषित करा जे दोन सूची पुन्हा क्रमवारी लावल्यास समान आहेत की नाही हे तपासते.


Declare a function sortdesc: ∀α. L(α) → L(α) that reorders a list such that the elements appear in descending order.

sortdesc: ∀α. L(α) → L(α) हे फंक्शन घोषित करा जे सूचीला अशा प्रकारे पुन्हा क्रमवारी लावते की घटक उतरत्या क्रमाने दिसतील.


उदाहरणार्थ, आम्हाला sort desc[5,3,2,5,2,3] = [5,5,3,3,2,2] हवे आहे.


Declare a function dsort: ∀α. L(α) → L(α) that sorts a list and removes all duplicates.

dsort: ∀α. L(α) → L(α) हे फंक्शन घोषित करा जे सूची क्रमबद्ध करते आणि सर्व डुप्लिकेट्स (duplicate) काढते.


Insertion order Sorting by insertion inserts the elements of the input list one by one into the empty list.

इन्सर्शन ऑर्डर (Insertion order) इन्सर्ट करून क्रमवारी लावल्यास इनपुट सूचीतील घटक रिकाम्या सूचीमध्ये एक-एक करून घातले जातात.


The order in which this is done does not matter for the result.

हे ज्या क्रमाने केले जाते, त्याने निकालावर काहीही परिणाम होत नाही.


If we define isort as isort l := fold insert l [] we preserve the insertion order.

जर आपण isort l := fold insert l [] असे isort परिभाषित केले, तर आपण इन्सर्ट करण्याचा क्रम जसा आहे तसाच ठेवतो.


जंगलातील झाडं खूप उंच होती.


Please open the window; it's hot in here.

कृपया खिडकी उघडा; इथे खूप गरम आहे.


बातमीमध्ये मोठ्या भूकंपाची बातमी दिली होती.


He is studying computer science at the university.

तो विद्यापीठात संगणक विज्ञान शिकत आहे.


The company announced its quarterly earnings.

कंपनीने तिच्या तिमाही कमाईची घोषणा केली.


तुम्ही ते कृपया पुन्हा सांगू शकाल का?


The algorithm efficiently sorts the data.

अल्गोरिदम डेटाची कार्यक्षमतेने क्रमवारी लावतो.


She enjoys reading novels in her free time.

ती रिकाम्या वेळेत कादंबऱ्या वाचायला आवडते.


The government is implementing new policies.

सरकार नवीन धोरणे लागू करत आहे.


The research paper explores the impact of climate change.

संशोधन निबंध हवामान बदलाच्या परिणामांचे परीक्षण करतो.


आव्हानांवर मात करूनही, ते यशस्वी झाले.


The meeting was adjourned due to lack of quorum.

कोरमअभावी बैठक तहकूब करण्यात आली.


The software update includes several bug fixes.

सॉफ्टवेअर अपडेटमध्ये अनेक बग फिक्सेसचा समावेश आहे.


तो त्याच्या क्षेत्रातील एक प्रसिद्ध तज्ञ आहे.


The economic forecast predicts a recession.

आर्थिक अंदाजानुसार मंदी येण्याची शक्यता आहे.


The artist's work is displayed in a prestigious gallery.

कलाकाराचे काम एका प्रतिष्ठित गॅलरीत प्रदर्शित केले आहे.


The complex equation required advanced calculus.

गुंतागुंतीच्या समीकरणासाठी प्रगत कॅल्कुलसची आवश्यकता होती.


बोलणी অচूक स्थितीत पोहोचली.


The historical significance of the event is undeniable.

या घटनेचे ऐतिहासिक महत्त्व निर्विवाद आहे.


The project's success hinges on meticulous planning and execution.

प्रकल्पाचे यश सूक्ष्म नियोजन आणि अंमलबजावणीवर अवलंबून आहे.


If this is the case, check yields the unique type of the expression, otherwise it throws an exception.

जर हे घडत असेल, तर 'चेक' फंक्शन अभिव्यक्तीचा अद्वितीय प्रकार दर्शवते, अन्यथा ते अपवाद दर्शवते.


Expressions containing untyped lambda or recursive let expressions count as ill-typed.

अनिर्दिष्ट प्रकारची लॅम्डा किंवा पुनरावृत्ती 'लेट' अभिव्यक्ती असलेली विधाने चुकीची मानली जातात.


The type checker matches on the given expression and for each variant follows the algorithmic reading of the respective typing rule.

प्रकार तपासक (टाइप चेकर) दिलेल्या अभिव्यक्तीशी जुळतो आणि प्रत्येक प्रकारासाठी संबंधित टायपिंग नियमाचे अल्गोरिदमिक वाचन करतो.


Note that we are using helper functions for operator and function applications for better readability.

लक्षात घ्या की आम्ही अधिक चांगल्या प्रकारे वाचता यावे यासाठी ऑपरेटर आणि फंक्शन ॲप्लिकेशन्ससाठी सहाय्यक कार्ये वापरत आहोत.


We realize the evaluator with a function eval:env var value→exp→value that evaluates an expression in an environment.

आम्ही व्हॅल्यूएटरला eval:env var value→exp→value या फंक्शनने ओळखतो, जे वातावरणातील अभिव्यक्तीचे मूल्यांकन करते.


As with the type checker, we use helper functions for operator and function applications for better readability.

प्रकार तपासकाप्रमाणेच, आम्ही अधिक चांगल्या प्रकारे वाचता यावे यासाठी ऑपरेटर आणि फंक्शन ॲप्लिकेशन्ससाठी सहाय्यक कार्ये वापरतो.


This time the helper function for function applications is mutually recursive with the master evaluation function.

यावेळी, फंक्शन ॲप्लिकेशन्ससाठीचे सहाय्यक कार्य हे मुख्य मूल्यांकन कार्यासोबत परस्परावलंबी आहे.


The lexer for Mini-OCaml needs work, mainly because it needs to recognize identifiers (i.e., variables) and number constants.

मिनी-ओकॅमलसाठीच्या लेक्सरला (Lexer) काम करण्याची आवश्यकता आहे, कारण त्याला मुख्यत्वेकरून अभिज्ञापक (म्हणजे, व्हेरिएबल्स) आणि संख्या स्थिरांक ओळखण्याची गरज आहे.


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

आम्ही लेक्सरला 5 परस्पर शेपटी-पुनरावृत्ती कार्यांसह ओळखतो.


There is some cleverness in this design.

या डिझाइनमध्ये काही चातुर्य आहे.


We avoid considering auxiliary strings by accessing the given string by position using String.get and by using String.sub to extract an identifier identified by its starting position and length.

String.get वापरून स्थानानुसार आणि String.sub वापरून आरंभ स्थान आणि लांबीने ओळखला जाणारा अभिज्ञापक काढण्यासाठी, आम्ही सहाय्यक स्ट्रिंग्जचा विचार करणे टाळतो.


The constant true and false and keywords like if are first recognized as identifiers and then transformed into the respective constant or keyword tokens.

true आणि false हे स्थिरांक आणि if सारखे कीवर्ड प्रथम अभिज्ञापक म्हणून ओळखले जातात आणि नंतर संबंधित स्थिरांक किंवा कीवर्ड टोकनमध्ये रूपांतरित केले जातात.


Digits and letters are recognized by using the function Char.code and exploiting the fact that the codes of the respective characters follow each other continuously in a canonical order.

अंकाक्षरं आणि अक्षरं Char.code फंक्शन वापरून ओळखली जातात आणि या वस्तुस्थितीचा फायदा घेतला जातो की संबंधित वर्णांचे कोड एका प्रमाणित क्रमाने सतत एकमेकांचे अनुसरण करतात.


Following OCaml, an identifier must start with a lower case letter and can then continue with digits, lower and upper case letters, and the special characters’ ’(underline) and’’’(quote).

ओकॅमलचे अनुसरण करून, एक अभिज्ञापक लहान अक्षराने सुरू होणे आवश्यक आहे आणि त्यानंतर अंक, लहान आणि मोठी अक्षरे आणि ‘’(अंडरलाइन) आणि’’’(अवतरण) यासारखी विशेष वर्णं असू शकतात.


Note the use of patterns with when conditions in the declaration of the parsing function lex.

लेक्सिंग फंक्शनच्या घोषणेमध्ये 'जेव्हा' (when) अटींसह नमुन्यांचा वापर लक्षात घ्या.


We remark that the lexer follows the longest munch rule when it reads identifiers and numbers; that is, it reads as many characters as are possible for an identifier or number.

आम्ही नमूद करतो की लेक्सर अभिज्ञापक आणि संख्या वाचताना सर्वात मोठी 'मंच' (munch) नियमाचे पालन करते; म्हणजेच, ते अभिज्ञापक किंवा संख्येसाठी शक्य तितके वर्ण वाचते.


The parsing grammar for Mini-OCaml consists of a grammar for types and a grammar for expressions building on the grammar for types.

मिनी-ओकॅमलसाठीचे पार्सिंग व्याकरण प्रकारांसाठी व्याकरण आणि प्रकारांसाठीच्या व्याकरणावर आधारित अभिव्यक्तींसाठी व्याकरणाचे बनलेले आहे.


The top level takes care of the prefix phrases, which recurse to the top level.

शीर्ष स्तर उपसर्ग वाक्यांशांची काळजी घेतो, जे शीर्ष स्तरावर परत येतात.


We now come to the parsing grammar for Mini-OCaml types.

आता आपण मिनी-ओकॅमल प्रकारांसाठी पार्सिंग व्याकरणावर येऊया.


The project counts as the test for this week.

हा प्रकल्प या आठवड्यासाठी परीक्षा म्हणून गणला जाईल.


संगणक मेमरीमध्ये डेटा संग्रहित करतो.


कृपया, मला मीठ द्याल का?


बातमीमध्ये मोठ्या भूकंपाची नोंद आहे.


ती ग्रंथालयात पुस्तक वाचत आहे.


The company announced its quarterly results.

कंपनीने तिचे तिमाही निकाल जाहीर केले.


The algorithm efficiently sorts the data.

अल्गोरिदम डेटाची कार्यक्षमतेने क्रमवारी लावतो.


The government is discussing new policies.

सरकार नवीन धोरणांवर चर्चा करत आहे.


तो एक अतिशय प्रतिभावान संगीतकार आहे.


The research team published their findings.

संशोधन टीमने त्यांचे निष्कर्ष प्रकाशित केले.


The complex system requires careful analysis.

जटिल प्रणालीसाठी काळजीपूर्वक विश्लेषणाची आवश्यकता आहे.


आव्हानांवर मात करूनही, ते यशस्वी झाले.


आर्थिक अंदाजानुसार वाढ अपेक्षित आहे.


कलाकाराच्या कामाचे खूप कौतुक केले जाते.


दोन्ही राष्ट्रांनी या करारावर स्वाक्षरी केली.


सॉफ्टवेअर अपडेटमुळे अनेक त्रुटी दूर झाल्या.


The philosophical debate continued for hours.

तासन तास तत्त्वज्ञानावर वादविवाद चालला.


The intricate design required precision.

गुंतागुंतीच्या डिझाइनसाठी अचूकतेची आवश्यकता होती.


The implications of the decision are far-reaching.

या निर्णयाचे दूरगामी परिणाम आहेत.


The historical context is crucial for understanding.

ऐतिहासिक संदर्भ समजून घेण्यासाठी महत्त्वाचा आहे.


The quantum physics experiment yielded surprising results.

क्वांटम भौतिकशास्त्राच्या प्रयोगाने आश्चर्यकारक निष्कर्ष दिले.


The algorithm's running time assumes constant field access, which is true for arrays.

अल्गोरिदमची रनिंग टाइम हे गृहीत धरते की फील्ड ऍक्सेस स्थिर वेळेत आहे, जे ॲरेसाठी खरे आहे.


Binary search is used to distinguish it from linear search, which has linear running time.

बायनरी सर्चचा उपयोग, रेषीय शोधापासून वेगळे करण्यासाठी केला जातो, ज्यामध्ये रेषीय रनिंग टाइम असतो.


Binary search usually returns an index where the element is found.

बायनरी सर्च सामान्यतः एक इंडेक्स परत करतो जेथे घटक सापडतो.


The binary search function can be declared as follows.

बायनरी सर्च फंक्शन खालीलप्रमाणे घोषित केले जाऊ शकते.


The worker function is tail-recursive and the array segment is halved upon recursion.

कामगार फंक्शन शेपटी-रिकर्सिव्ह आहे आणि ॲरे विभाग पुनरावृत्तीवर अर्धा केला जातो.


बायनरी सर्च दोन इनव्हेरिएंट्सचे समाधान करते.


The array's state agrees with the initial state.

ॲरेची स्थिती सुरुवातीच्या स्थितीशी सहमत आहे.


All elements to the left of 'l' are smaller than 'x'.

'l' च्या डावीकडील सर्व घटक 'x' पेक्षा लहान आहेत.


Linear search doesn’t assume the array is sorted.

रेषीय शोध ॲरे क्रमबद्ध आहे असे मानत नाही.


Declare a function that checks if a value occurs in an array.

एक फंक्शन घोषित करा जे तपासते की एखादे मूल्य ॲरेमध्ये येते की नाही.


The running time of linear search should be O(n).

रेषीय शोधाची रनिंग टाइम O(n) असावी.


Declare a function that checks if there is some i ≤ n such that f(i) = x.

एक फंक्शन घोषित करा जे तपासते की असे काही i ≤ n आहे का जेथे f(i) = x आहे.


There is an elegant algorithm reversing array elements.

ॲरेमधील घटक उलट करण्यासाठी एक उत्कृष्ट अल्गोरिदम आहे.


The algorithm is based on a function swapping values.

अल्गोरिदम मूल्यांची अदलाबदल करणाऱ्या फंक्शनवर आधारित आहे.


The algorithm reverses a segment i < j in an array.

अल्गोरिदम ॲरेमधील i < j विभागाला उलट करतो.


Function reverse satisfies two invariants.

रिव्हर्स फंक्शन दोन इनव्हेरिएंट्सचे समाधान करते.


The state of the array agrees with the initial state up to repeated swapping.

ॲरेची स्थिती वारंवार अदलाबदल होईपर्यंत सुरुवातीच्या स्थितीशी सहमत आहे.


The segments l ≤ i and j ≤ r agree with the reversed initial state.

विभाग l ≤ i आणि j ≤ r उलट सुरुवातीच्या स्थितीशी सहमत आहेत.


A naive sorting algorithm for arrays is selection sort.

ॲरेसाठी एक साधा क्रमवारी अल्गोरिदम निवड क्रमवारी आहे.


The running time of selection sort is quadratic.

निवड क्रमवारीची रनिंग टाइम वर्गसमीकरण आहे.


The algorithm is based on two straightforward rules.

अल्गोरिदम दोन सोप्या नियमांवर आधारित आहे.


If one of the numbers is 0, the other number is the greatest common divisor of the two numbers.

जर संख्यांपैकी एक 0 असेल, तर दुसरी संख्या दोन संख्यांचा सर्वात मोठा सामान्य विभाजक आहे.


We now recall that x%y is obtained by subtracting y from x as long as y ≤ x.

आता आपण आठवूया की x%y हे x मधून y वजा करून मिळते जोपर्यंत y ≤ x आहे.


Our goal here is to carefully explain how the algorithm can be derived from basic principles.

येथे, या अल्गोरिदमची मूलभूत तत्त्वांमधून व्युत्पत्ती कशी करता येते, हे काळजीपूर्वक स्पष्ट करणे हे आमचे ध्येय आहे.


We first define the divides relation for numbers.

सुरुवातीला, आपण संख्यांसाठी 'विभाजित' संबंध परिभाषित करतो.


When we have k|x, we say that k is a divisor or a factor of x.

जेव्हा आपल्याकडे k|x असते, तेव्हा आपण म्हणतो की k हा x चा विभाजक किंवा घटक आहे.


Moreover, when we say that k is a common divisor of x and y we mean that k is a divisor of both x and y.

याव्यतिरिक्त, जेव्हा आपण म्हणतो की k हा x आणि y चा सामाईक विभाजक आहे, तेव्हा आपला अर्थ k हा x आणि y या दोघांचा विभाजक आहे.


We observe that every number x has 1 and x as divisors.

आपण पाहतो की प्रत्येक संख्येचे 1 आणि x हे विभाजक असतात.


In contrast, 0 has infinitely many divisors since it is divided by every number.

याउलट, 0 चे अनंत विभाजक आहेत कारण ते प्रत्येक संख्येने विभागले जाते.


It follows that two numbers have a greatest common divisor if and only if not both numbers are zero.

यावरून असे निष्कर्ष निघतो की दोन संख्यांना सर्वात मोठा सामान्य विभाजक असतो, जर आणि केवळ जर दोन्ही संख्या शून्य नसल्यास.


We call a number z the GCD of two numbers x and y if the divisors of z are exactly the common divisors of x and y.

जर z चे विभाजक x आणि y च्या सामाईक विभाजकासारखेच असतील, तर आपण z ला x आणि y चा GCD म्हणतो.


Our goal is to find an algorithm that computes the GCD of two numbers.

दोन संख्यांचा GCD काढणारा अल्गोरिदम शोधणे हे आमचे ध्येय आहे.


If one of the two numbers is 0, we are done since the other number is the GCD of the two numbers.

जर दोन संख्यांपैकी एक 0 असेल, तर आपले काम झाले, कारण दुसरी संख्या दोन संख्यांचा GCD आहे.


It remains to find a rule that given two positive numbers x and y yields two numbers x' and y' that have the same GCD and whose sum is smaller.

दोन धन संख्या x आणि y दिल्यावर, x' आणि y' अशा दोन संख्या शोधणे बाकी आहे, ज्यांचा GCD समान असेल आणि ज्यांची बेरीज लहान असेल.


It turns out that the GCD of two number x ≥ y stays unchanged if x is replaced with the difference x-y.

असे दिसून येते की दोन संख्या x ≥ y चा GCD अपरिवर्तित राहतो, जर x च्या जागी x-y हे वजाबाकीचे उत्तर ठेवले.


By induction we know that gcd y (x%y) is the GCD of y and x%y.

प्रेरणेने, आपल्याला माहित आहे की gcd y (x%y) हा y आणि x%y चा GCD आहे.


The running time of gcd x y is at most y since each recursion step decreases y.

gcd x y ची रनिंग टाइम जास्तीत जास्त y आहे, कारण प्रत्येक पुनरावृत्ती चरणात y कमी होते.


In fact, one can show that the asymptotic running time of gcd x y is logarithmic in y.

खरं तर, हे दाखवता येते की gcd x y ची असिम्प्टोटिक रनिंग टाइम y मध्ये लॉगरिदमिक आहे.


For both considerations we exploit that x%y is realized as a constant-time operation on usual computers.

या दोन्ही बाबींसाठी, आपण याचा फायदा घेतो की x%y हे सामान्य संगणकांवर स्थिर-वेळेचे ऑपरेशन म्हणून साकारले जाते.


Complete induction is a generalization of mathematical induction making it possible to assume in a proof of p(n) a proof of p(k) for all k < n.

पूर्ण प्रेरण हे गणितीय प्रेरणचे सामान्यीकरण आहे, ज्यामुळे p(n) च्या सिद्धांतामध्ये, सर्व k < n साठी p(k) चा सिद्धांत मानणे शक्य होते.