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.

પ્રોગ્રામિંગ ભાષાઓમાં મશીન ઇંટીજર્સના આધારે ઇંટીજર્સના ઘણા મોટા અંતરાલોને સમજવાની તકનીકો છે.


એક અભિવ્યક્તિ અને ઘોષણા આપો.


ઘોષણાની રચના સમજાવો.


અભિવ્યક્તિઓના નેસ્ટિંગને સમજાવો.


એક પ્રકાર આપો.


To what value does the program leta = 2 leta = a * a leta = a * a bind the identifier a?

પ્રોગ્રામ leta = 2 leta = a * a leta = a * a ઓળખકર્તા a ને કયા મૂલ્ય સાથે બાંધે છે?


Give a machine integer x such that x + 1 < x.

એક મશીન ઇંટીજર x આપો કે જેથી x + 1 < x.


Things become interesting once we declare functions.

એકવાર આપણે કાર્યો જાહેર કરીએ તે પછી વસ્તુઓ રસપ્રદ બને છે.


The declaration let square x = x * x declares a function square:int→int squaring its argument.

ઘોષણા let square x = x * x તેના આર્ગ્યુમેન્ટને ચોરસ કરીને એક ફંક્શન square:int→int જાહેર કરે છે.


Given the declaration of square, execution of the declaration leta = square 5 binds the identifier a to the integer 25.

square ની ઘોષણાને જોતાં, ઘોષણા leta = square 5 નું અમલ ઓળખકર્તા a ને ઇંટીજર 25 સાથે બાંધે છે.


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

શું આપણે માત્ર ત્રણ ગુણાકારથી x^8 ની શક્તિની ગણતરી કરી શકીએ?


Easy, we just square the integer x three times.

સરળ, આપણે ફક્ત ઇંટીજર x ને ત્રણ વખત ચોરસ કરીએ છીએ.


This declaration gives us a function pow8:int→int.

આ ઘોષણા આપણને એક ફંક્શન pow8:int→int આપે છે.


Another possibility is the declaration let pow8' x = let a = x * x in let b = a * a in b * b declaring a function pow8' :int→int doing the three multiplications using two local declarations.

બીજી સંભાવના એ છે કે ઘોષણા let pow8' x = let a = x * x in let b = a * a in b * b બે સ્થાનિક ઘોષણાઓનો ઉપયોગ કરીને ત્રણ ગુણાકાર કરતું ફંક્શન pow8' :int→int જાહેર કરે છે.


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 અભિવ્યક્તિઓ let d in સાથે મેળવવામાં આવે છે જે કીવર્ડ્સ let અને in નો ઉપયોગ કરીને ઘોષણા d ને અભિવ્યક્તિ e સાથે જોડે છે.


Note that the body of pow' nests two let expressions as let d1 in (let d2 in e).

નોંધ લો કે pow' નું બોડી બે let અભિવ્યક્તિઓને let d1 in (let d2 in e) તરીકે નેસ્ટ કરે છે.


OCaml lets you write redundant parentheses marking the nesting (if you want to).

OCaml તમને નેસ્ટિંગને ચિહ્નિત કરતા વધારાના કૌંસ લખવાની મંજૂરી આપે છે (જો તમે ઈચ્છો તો).


Let expressions must not be confused with top-level declarations (which don’t use the keyword in).

Let અભિવ્યક્તિઓને ટોપ-લેવલ ઘોષણાઓ સાથે મૂંઝવણ ન કરવી જોઈએ (જે કીવર્ડ in નો ઉપયોગ કરતી નથી).


Write a function computing x^5 with just 3 multiplications.

માત્ર 3 ગુણાકારથી x^5 ની ગણતરી કરતું એક ફંક્શન લખો.


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

પ્રોગ્રામ 'a' ઓળખકર્તાને પૂર્ણાંક 8 સાથે બાંધે છે.


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

અમલ પછી, ઇન્ટરપ્રીટર તે ગણતરી કરેલા મૂલ્યો બતાવશે.


દરેક અભિવ્યક્તિનો એક પ્રકાર છે.


The values of the type int are integers.

પ્રકાર int ના મૂલ્યો પૂર્ણાંકો છે.


We assume that incoming students are familiar with mathematical thinking.

અમે ધારીએ છીએ કે આવતા વિદ્યાર્થીઓ ગણિતના વિચારથી પરિચિત છે.


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

કોર્સ અભ્યાસના સમયનો લગભગ એક તૃતીયાંશ ભાગ લેવા માટે રચાયેલ છે.


Students perceive the course as challenging and exciting.

વિદ્યાર્થીઓ કોર્સને પડકારજનક અને ઉત્તેજક તરીકે જુએ છે.


We cover higher-order recursive functions, polymorphic typing, and constructor types.

અમે ઉચ્ચ-ક્રમની પુનરાવર્તિત કાર્યો, બહુરંગી ટાઇપિંગ અને કન્સ્ટ્રક્ટર પ્રકારોને આવરી લઈએ છીએ.


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

અમે ચોકસાઈના નિવેદનોની ભૂમિકા પર ભાર મૂકીએ છીએ અને પ્રેરક ચોકસાઈના પુરાવાઓનો અભ્યાસ કરીએ છીએ.


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

અમે બાઈનરી સર્ચ, ઇન્સર્શન સોર્ટ અને મર્જ સોર્ટને ધ્યાનમાં લેતા એસિમ્પ્ટોટિક રનિંગ ટાઈમને પણ આવરી લઈએ છીએ.


The new English text realizes some substantial changes.

નવો અંગ્રેજી પાઠ કેટલાક નોંધપાત્ર ફેરફારોને સાકાર કરે છે.


More basic explanations with more examples could be helpful in many places.

વધુ ઉદાહરણો સાથે વધુ મૂળભૂત સમજૂતીઓ ઘણી જગ્યાએ મદદરૂપ થઈ શકે છે.


At Saarland University, the course spans 15 weeks of teaching.

સારલેન્ડ યુનિવર્સિટીમાં, કોર્સ 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.

ઘરે લઈ જવાનો પ્રોજેક્ટ કોર્સનો એક મહત્વપૂર્ણ ભાગ માનવો જોઈએ.


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

ઇન્ટરપ્રીટર તપાસે છે કે આપેલ ટેક્સ્ટને પ્રોગ્રામ તરીકે અર્થઘટન કરી શકાય છે.


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.

કાર્યોને કોડિંગ કરતા પહેલાં પ્રકારો અને સમીકરણોનો ઉપયોગ કરીને ગાણિતિક સ્તરે ડિઝાઇન કરવામાં આવે છે.


એલ્ગોરિધમ સમીકરણની ચકાસણી કરે છે.


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

અચળાંકો એ પ્રકારો int, bool અને સ્ટ્રિંગના મૂલ્યો છે.


The environment is needed so that e can contain variables that are not bound by surrounding lambda expressions or let expressions.

પર્યાવરણ જરૂરી છે જેથી e માં એવા ચલો હોઈ શકે કે જે આસપાસના લેમ્ડા અભિવ્યક્તિઓ અથવા લેટ અભિવ્યક્તિઓ દ્વારા બંધાયેલા ન હોય.


We formulate the static semantics of abstract expressions using typing judgments.

અમે ટાઇપિંગ જજમેન્ટનો ઉપયોગ કરીને અમૂર્ત અભિવ્યક્તિઓની સ્થિર અર્થશાસ્ત્ર ઘડીએ છીએ.


The derivation uses the typing rules for constants, tuple expressions, and projections.

આ વ્યુત્પત્તિ અચળાંકો, ટ્યુપલ અભિવ્યક્તિઓ અને પ્રક્ષેપણ માટેના ટાઇપિંગ નિયમોનો ઉપયોગ કરે છે.


The algorithm considers the uniquely determined typing rule for e and recurses on the instantiated premises of the rule.

એલ્ગોરિધમ e માટે અનન્ય રીતે નિર્ધારિત ટાઇપિંગ નિયમ પર વિચાર કરે છે અને નિયમના ઉદાહરણરૂપ પરિસરમાં પુનરાવર્તન કરે છે.


The dynamic semantics of a programming language defines what effect the execution of a phrase should have.

પ્રોગ્રામિંગ ભાષાની ગતિશીલ અર્થશાસ્ત્ર એ વ્યાખ્યાયિત કરે છે કે કોઈ વાક્યના અમલની શું અસર થવી જોઈએ.


For instance, if we evaluate a lambda expression λx.e in a value environment V, we obtain the closure (x,e,V).

ઉદાહરણ તરીકે, જો આપણે મૂલ્ય પર્યાવરણ V માં લેમ્ડા અભિવ્યક્તિ λx.e નું મૂલ્યાંકન કરીએ, તો આપણને ક્લોઝર (x,e,V) મળે છે.


The evaluation rules describe the successful evaluation of expressions at an abstract level.

મૂલ્યાંકન નિયમો અમૂર્ત સ્તરે અભિવ્યક્તિઓના સફળ મૂલ્યાંકનનું વર્ણન કરે છે.


Type safety provides for more efficient execution of programming languages.

ટાઇપ સલામતી પ્રોગ્રામિંગ ભાષાઓના વધુ કાર્યક્ષમ અમલ માટે પ્રદાન કરે છે.


The derivation system is used for describing computational relations.

આ વ્યુત્પત્તિ સિસ્ટમનો ઉપયોગ ગણતરી સંબંધોનું વર્ણન કરવા માટે થાય છે.


The new language has types as considered before.

નવી ભાષામાં પહેલાં ગણવામાં આવેલા પ્રકારો છે.


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

લેમ્ડા અભિવ્યક્તિઓ અને લેટ અભિવ્યક્તિઓ દ્વારા રજૂ કરાયેલા ચલોને સ્થાનિક ચલો કહેવામાં આવે છે.


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

ચોક્કસ અભિવ્યક્તિઓને સમકક્ષ અમૂર્ત અભિવ્યક્તિઓમાં અનુવાદિત કરવું શક્ય છે.


The typing rules for constants and for operator applications assume that the types for constants and operators are given in tables.

અચળાંકો અને ઓપરેટર એપ્લિકેશન્સ માટેના ટાઇપિંગ નિયમો ધારે છે કે અચળાંકો અને ઓપરેટરો માટેના પ્રકારો કોષ્ટકોમાં આપવામાં આવ્યા છે.


We say that an expression e is well typed in an environment E if the judgment E`e:t is derivable for some type t.

આપણે કહીએ છીએ કે જો જજમેન્ટ E`e:t અમુક પ્રકાર t માટે મેળવી શકાય તો પર્યાવરણ E માં એક અભિવ્યક્તિ e સારી રીતે ટાઇપ થયેલ છે.


OCaml will only execute well-typed programs.

OCaml ફક્ત સારી રીતે ટાઇપ કરેલા પ્રોગ્રામ્સ ચલાવશે.


The rules for lambda expressions and recursive let expressions are special in that they guess types for the local variables they introduce.

લેમ્ડા અભિવ્યક્તિઓ અને પુનરાવર્તિત લેટ અભિવ્યક્તિઓ માટેના નિયમો એ હકીકતમાં વિશેષ છે કે તેઓ જે સ્થાનિક ચલો રજૂ કરે છે તેના માટે પ્રકારોનો અંદાજ લગાવે છે.


From the typing rules for let expressions one can obtain typing rules for declarations and programs.

લેટ અભિવ્યક્તિઓ માટેના ટાઇપિંગ નિયમો પરથી કોઈ ઘોષણાઓ અને પ્રોગ્રામ્સ માટે ટાઇપિંગ નિયમો મેળવી શકે છે.


We will expand on this argument in the next section when we discuss a type checking algorithm.

જ્યારે આપણે ટાઇપ ચેકિંગ એલ્ગોરિધમની ચર્ચા કરીશું ત્યારે આપણે આ દલીલને આગલા વિભાગમાં વિસ્તૃત કરીશું.


Tail recursion can be executed more efficiently than general recursion.

પૂંછડીની પુનરાવર્તન સામાન્ય પુનરાવર્તન કરતાં વધુ કાર્યક્ષમ રીતે ચલાવી શકાય છે.


Typical examples of tail recursive functions are the functions rev', gcd, my mod, and first we have seen before.

પૂંછડીની પુનરાવર્તિત કાર્યોના લાક્ષણિક ઉદાહરણો એ કાર્યો છે rev', gcd, my mod, અને first જે આપણે પહેલા જોયા છે.


Counterexamples for tail recursive functions are the recursive functions pow (the recursive application is nested into a product) and my div (the recursive application is nested into a sum).

પૂંછડીની પુનરાવર્તિત કાર્યોના પ્રતિ-ઉદાહરણો એ પુનરાવર્તિત કાર્યો છે pow (પુનરાવર્તિત એપ્લિકેશન ઉત્પાદનમાં નેસ્ટેડ છે) અને my div (પુનરાવર્તિત એપ્લિકેશન સરવાળામાં નેસ્ટેડ છે).


Tail recursive functions have the property that their execution can be traced in a simple way.

પૂંછડીની પુનરાવર્તિત કાર્યોમાં એ ગુણધર્મ છે કે તેમનું અમલ સરળ રીતે શોધી શકાય છે.


For instance, we have the tail recursive trace gcd 36 132 = gcd 132 36 = gcd 36 24 = gcd 24 12 = gcd 12 0 = 12

ઉદાહરણ તરીકે, આપણી પાસે પૂંછડીની પુનરાવર્તિત ટ્રેસ gcd 36 132 = gcd 132 36 = gcd 36 24 = gcd 24 12 = gcd 12 0 = 12 છે.


For functions where the recursion is not tail recursive, traces look more complicated, for instance pow 2 3 = 2·pow 2 2 = 2·(2·pow 2 1) = 2·(2·(2·pow 2 0)) = 2·(2·(2·1)) = 8

જે કાર્યોમાં પુનરાવર્તન પૂંછડીનું પુનરાવર્તિત નથી, તેના ટ્રેસ વધુ જટિલ લાગે છે, ઉદાહરણ તરીકે pow 2 3 = 2·pow 2 2 = 2·(2·pow 2 1) = 2·(2·(2·pow 2 0)) = 2·(2·(2·1)) = 8


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

આદેશાત્મક પ્રોગ્રામિંગ ભાષાઓમાં પૂંછડીની પુનરાવર્તિત કાર્યોને લૂપ્સ સાથે વ્યક્ત કરી શકાય છે.


While imperative languages are designed such that loops should be used whenever possible, functional programming languages are designed such that tail recursive functions are preferable over loops.

જ્યારે આદેશાત્મક ભાષાઓ એવી રીતે ડિઝાઇન કરવામાં આવી છે કે શક્ય હોય ત્યારે લૂપ્સનો ઉપયોગ થવો જોઈએ, ત્યારે કાર્યાત્મક પ્રોગ્રામિંગ ભાષાઓ એવી રીતે ડિઝાઇન કરવામાં આવી છે કે પૂંછડીની પુનરાવર્તિત કાર્યો લૂપ્સ કરતાં વધુ પસંદીદા છે.


Often recursive functions that are not tail recursive can be reformulated as tail recursive functions by introducing an extra argument serving as accumulator argument.

ઘણીવાર પુનરાવર્તિત કાર્યો કે જે પૂંછડીના પુનરાવર્તિત નથી, તેને વધારાના દલીલને એકઠા કરનાર દલીલ તરીકે રજૂ કરીને પૂંછડીના પુનરાવર્તિત કાર્યો તરીકે ફરીથી તૈયાર કરી શકાય છે.


Here is a tail recursive version of pow: let rec pow' x n a = if n < 1 then a else pow' x (n - 1) (x * a)

અહીં pow નું પૂંછડીનું પુનરાવર્તિત સંસ્કરણ છે: let rec pow' x n a = if n < 1 then a else pow' x (n - 1) (x * a)


We explain the role of the accumulator argument with a trace: pow' 2 3 1 = pow' 2 2 2 = pow' 2 1 4 = pow' 2 0 8 = 8

આપણે ટ્રેસ સાથે એકઠા કરનાર દલીલની ભૂમિકા સમજાવીએ છીએ: pow' 2 3 1 = pow' 2 2 2 = pow' 2 1 4 = pow' 2 0 8 = 8


In mathematics, the factorial of a positive integer n, denoted by n!, is the product of all positive integers less than or equal to n: n! = n·(n−1)· ··· ·2·1

ગણિતમાં, ધન પૂર્ણાંક n નો અવયવ, n! દ્વારા દર્શાવવામાં આવે છે, તે n થી ઓછા અથવા તેના સમાન તમામ ધન પૂર્ણાંકોનું ઉત્પાદન છે: n! = n·(n−1)· ··· ·2·1


ઉદાહરણ તરીકે, 5! = 5·4·3·2·1 = 120


વધુમાં, 0! ને 1 તરીકે વ્યાખ્યાયિત કરવામાં આવે છે.


We capture this specification with a recursive function defined as follows: ! :N→N 0! := 1 (n+ 1)! := (n+ 1)·n!

આપણે આ સ્પષ્ટીકરણને નીચે પ્રમાણે વ્યાખ્યાયિત પુનરાવર્તિત કાર્ય સાથે કેપ્ચર કરીએ છીએ: ! :N→N 0! := 1 (n+ 1)! := (n+ 1)·n!


Declare a function fac:int→int computing factorials.

ફેક્ટોરિયલ્સની ગણતરી કરતા કાર્ય fac:int→int જાહેર કરો.


Define a tail recursion function f:N→N→N such that n! = f 1 n.

એક પૂંછડી પુનરાવર્તન કાર્ય f:N→N→N વ્યાખ્યાયિત કરો જેથી n! = f 1 n.


Declare a tail recursive function fac' :int→int→int such that fac' 1 computes factorials.

એક પૂંછડી પુનરાવર્તિત કાર્ય fac' :int→int→int જાહેર કરો જેથી fac' 1 ફેક્ટોરિયલ્સની ગણતરી કરે.


Sometimes we want a function that returns more than one value.

કેટલીકવાર આપણે એવું કાર્ય જોઈએ છે જે એક કરતાં વધુ મૂલ્ય પરત કરે.


For instance, the time for a marathon may be given with three numbers in the format h:m:s, where h is the number of hours, m is the number of minutes, and s is the number of seconds the runner needed.

ઉદાહરણ તરીકે, મેરેથોનનો સમય h:m:s ફોર્મેટમાં ત્રણ સંખ્યાઓ સાથે આપી શકાય છે, જ્યાં h એ કલાકોની સંખ્યા છે, m એ મિનિટોની સંખ્યા છે, અને s એ સેકન્ડની સંખ્યા છે જે દોડવીરને જરૂરી છે.


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.

અક્ષર શ્રેણીઓને અમૂર્ત અભિવ્યક્તિઓમાં રૂપાંતરિત કરવાના નિયમો ભાષાના કોંક્રિટ સિન્ટેક્સ દ્વારા નિશ્ચિત કરવામાં આવે છે, જે ભાષાના અમૂર્ત સિન્ટેક્સને સુધારે છે.


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

ગતિશીલ અર્થશાસ્ત્ર કાર્યાત્મક મૂલ્યોને કહેવાતા ક્લોઝર તરીકે રજૂ કરે છે જે ફંક્શનના સિન્ટેક્ટિક વર્ણનને મૂલ્ય પર્યાવરણ સાથે જોડે છે જે મુક્ત ચલો માટે મૂલ્યો પ્રદાન કરે છે.


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

ટાઇપિંગ નિયમો દ્વારા આપવામાં આવેલ ટાઇપ ચેકિંગ અલ્ગોરિધમને લેમ્ડા અભિવ્યક્તિઓના આર્ગ્યુમેન્ટ ચલોના પ્રકારોનો અંદાજ લગાવવાની જરૂર છે.


The guessing can be eliminated by using lambda expressions carrying the type of the argument variable: e::=··· |λx:t.e

આ અંદાજને આર્ગ્યુમેન્ટ ચલનો પ્રકાર ધરાવતી લેમ્ડા અભિવ્યક્તિઓનો ઉપયોગ કરીને દૂર કરી શકાય છે: e::=··· |λx:t.e


For recursive function declarations we need an argument type and a result type to avoid guessing: e::=··· |let recf(x:t 1 ) :t 2 =e 1 ine 2

પુનરાવર્તિત ફંક્શન ઘોષણાઓ માટે આપણે અંદાજ ટાળવા માટે આર્ગ્યુમેન્ટ પ્રકાર અને પરિણામ પ્રકારની જરૂર છે: e::=··· |let recf(x:t 1 ) :t 2 =e 1 ine 2


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.

જ્યારે મૂલ્યાંકન મૂલ્યોની ગણતરી કરે છે, ત્યારે ટાઇપ ચેકિંગ પ્રકારોની ગણતરી કરે છે.


બિલાડી સાદડી પર બેઠી હતી.


તમારું નામ શું છે?


આજે હવામાન ખૂબ જ સરસ છે.


હું બજારમાં જઈ રહ્યો છું.


કૃપા કરીને મીઠું આપો.


કંપનીએ વિક્રમી નફાની જાહેરાત કરી.


The new software update includes several bug fixes.

નવા સોફ્ટવેર અપડેટમાં ઘણા બગ ફિક્સનો સમાવેશ થાય છે.


તે ખૂબ જ પ્રતિભાશાળી સંગીતકાર છે.


The government is considering new economic policies.

સરકાર નવી આર્થિક નીતિઓ પર વિચાર કરી રહી છે.


She decided to pursue a career in medicine.

તેણીએ દવાના ક્ષેત્રમાં કારકિર્દી બનાવવાનું નક્કી કર્યું.


The algorithm efficiently sorts the data.

એલ્ગોરિધમ કાર્યક્ષમ રીતે ડેટાને સૉર્ટ કરે છે.


Despite the challenges, they persevered and succeeded.

પડકારો હોવા છતાં, તેઓ ટકી રહ્યા અને સફળ થયા.


The complex interplay of factors led to the crisis.

પરિબળોની જટિલ ક્રિયાપ્રતિક્રિયાએ કટોકટી તરફ દોરી ગઈ.


The philosophical implications of the discovery are profound.

આ શોધના તત્વજ્ઞાનિક અર્થો ઊંડા છે.


The company's innovative approach disrupted the market.

કંપનીના નવીન અભિગમે બજારને વિક્ષેપિત કર્યું.


The function's parameters are clearly defined.

કાર્યના પરિમાણો સ્પષ્ટ રીતે વ્યાખ્યાયિત થયેલ છે.


The research paper explores the nuances of quantum physics.

સંશોધન પત્ર ક્વોન્ટમ ભૌતિકશાસ્ત્રની ઝીણવટભરી બાબતોનું અન્વેષણ કરે છે.


The economic forecast predicts a period of slow growth.

આર્થિક આગાહી ધીમા વૃદ્ધિના સમયગાળાની આગાહી કરે છે.


The artist's work reflects a deep understanding of human emotion.

કલાકારનું કાર્ય માનવ લાગણીની ઊંડી સમજણ દર્શાવે છે.


The treaty was ratified by all member states.

સંધિને તમામ સભ્ય રાજ્યો દ્વારા બહાલી આપવામાં આવી હતી.


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

યાદી [1,2,3] ને વૃક્ષ તરીકે દર્શાવી શકાય છે.


Every list is obtained with either the constructor nil or the constructor cons.

દરેક યાદી કાં તો કન્સ્ટ્રક્ટર નીલ અથવા કન્સ્ટ્રક્ટર કોન્સ સાથે મેળવવામાં આવે છે.


We call the values x1, ..., xn the elements or the members of the list.

આપણે મૂલ્યો 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 ને ઠીક કરે છે.


Give the types of the following lists and tuples.

નીચેની યાદીઓ અને ટ્યુપલ્સના પ્રકારો આપો.


Another prominent list operation is concatenation.

બીજી એક અગ્રણી યાદી કામગીરી જોડાણ છે.


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

આપણે l1 @ l2 ને l1 અને l2 નું જોડાણ કહીએ છીએ.


How can we define an operation reversing lists?

આપણે યાદીઓને ઉલટાવી દેવાની કામગીરી કેવી રીતે વ્યાખ્યાયિત કરી શકીએ?


This brings us to the following definition of list reversal.

આ આપણને યાદી ઉલટાવવાની નીચેની વ્યાખ્યા પર લાવે છે.


We can also define a tail recursive list reversal function.

આપણે પૂંછડી પુનરાવર્તિત યાદી ઉલટાવવાનું કાર્ય પણ વ્યાખ્યાયિત કરી શકીએ છીએ.


The functions defined so far are all defined by list recursion.

અત્યાર સુધી વ્યાખ્યાયિત કાર્યો બધા યાદી પુનરાવર્તન દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે.


List recursion always terminates since lists are obtained from nil with finitely many applications of cons.

યાદી પુનરાવર્તન હંમેશા સમાપ્ત થાય છે કારણ કે યાદીઓ નીલમાંથી કોન્સના મર્યાદિત ઉપયોગો સાથે મેળવવામાં આવે છે.


Another prominent list operation is map.

બીજી એક અગ્રણી યાદી કામગીરી મેપ છે.


We say that map applies the function pointwise to a list.

આપણે કહીએ છીએ કે મેપ કાર્યને યાદીમાં બિંદુવાર લાગુ પાડે છે.


Finally, we define a function that yields the list of all integers between two numbers m and n (including m and n).

છેવટે, આપણે એક કાર્ય વ્યાખ્યાયિત કરીએ છીએ જે બે સંખ્યાઓ m અને n (m અને n સહિત) વચ્ચેના તમામ પૂર્ણાંકોની યાદી આપે છે.


This time the recursion is not on a list but on the number m.

આ વખતે પુનરાવર્તન યાદી પર નહીં પણ સંખ્યા m પર છે.


The recursion terminates since every recursion step decreases n - m and recursion stops once n - m < 0.

પુનરાવર્તન સમાપ્ત થાય છે કારણ કે દરેક પુનરાવર્તન પગલું n - m ઘટાડે છે અને n - m < 0 થાય કે તરત જ પુનરાવર્તન બંધ થાય છે.


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

એકવાર બધા તત્વો દાખલ થઈ જાય, પછી આપણી પાસે યાદીની સૉર્ટ કરેલી પુન: ગોઠવણી હોય છે.


Here are definitions of the necessary functions: insert, isort.

આ જરૂરી કાર્યોની વ્યાખ્યાઓ છે: દાખલ કરો, આઇસોર્ટ.


Make sure you understand every detail of the definition.

ખાતરી કરો કે તમે વ્યાખ્યાની દરેક વિગતને સમજો છો.


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

અમે એક ટ્રેસ ઓફર કરીએ છીએ: આઇસોર્ટ[3,2] = દાખલ કરો3 (આઇસોર્ટ[2]) = દાખલ કરો3 (દાખલ કરો2 (આઇસોર્ટ[])).


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

નોંધ લો કે આઇસોર્ટ ઇનપુટ યાદીના તત્વોને તે ક્રમમાં ઉલટાવીને દાખલ કરે છે જે ક્રમમાં તે ઇનપુટ યાદીમાં દેખાય છે.


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 sorted that tests whether a list is sorted.

એક ફંક્શન જાહેર કરો જે તપાસે છે કે યાદી સૉર્ટ થયેલ છે કે નહીં.


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

પૂંછડીની પુનરાવર્તનનો ઉપયોગ કરો. સામાન્ય મેચ સાથે કાર્ય લખો અને બતાવો કે સામાન્ય મેચનું સરળ મેચમાં ભાષાંતર કેવી રીતે થાય છે.


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

એક ફંક્શન જાહેર કરો જે તપાસે છે કે બે યાદીઓ ફરીથી ગોઠવવા સુધી સમાન છે કે નહીં.


Declare a function sortdesc 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 dsort that sorts a list and removes all duplicates.

એક ફંક્શન જાહેર કરો જે યાદીને સૉર્ટ કરે છે અને બધા ડુપ્લિકેટ્સને દૂર કરે છે.


The function calls that must be executed for a given initial function call are naturally organized into a call tree.

આપેલા પ્રારંભિક ફંક્શન કૉલ માટે જે ફંક્શન કૉલ્સ ચલાવવા આવશ્યક છે તે સ્વાભાવિક રીતે કૉલ ટ્રીમાં ગોઠવાયેલા છે.


Big O notation characterizes functions according to their growth rates.

મોટા O સંકેત તેમના વૃદ્ધિ દર અનુસાર કાર્યોનું લક્ષણ આપે છે.


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

આપણે સમીકરણો અને સમાપ્ત થતા પુનરાવર્તન સાથે વ્યાખ્યાયિત કાર્યોની લાક્ષણિકતાઓ સાબિત કરીશું.


Propositions are mathematical statements that may be true or false.

પ્રોપોઝિશન એ ગાણિતિક વિધાનો છે જે સાચા અથવા ખોટા હોઈ શકે છે.


For instance, the sum of all numbers up to 100 is 100*101/2 = 5050.

ઉદાહરણ તરીકે, 100 સુધીના તમામ નંબરોનો સરવાળો 100*101/2 = 5050 છે.


The letters l1, l2, l3, and l act as variables ranging over lists over some base type α.

અક્ષરો l1, l2, l3, અને l કેટલાક બેઝ પ્રકાર α પરની યાદીઓ પર આધારિત ચલો તરીકે કાર્ય કરે છે.


We now say that a function f is O(g) if and g are asymptotically equivalent.

હવે આપણે કહીએ છીએ કે જો f અને g એસિમપ્ટોટિકલી સમકક્ષ હોય તો ફંક્શન f એ O(g) છે.


The execution of a function call usually requires the execution of further function calls.

ફંક્શન કૉલના અમલ માટે સામાન્ય રીતે વધુ ફંક્શન કૉલ્સના અમલની જરૂર પડે છે.


Once one has an explicit formula for the running time, one can obtain the asymptotic running time in big O notation.

એકવાર કોઈની પાસે રનિંગ ટાઈમ માટે સ્પષ્ટ ફોર્મ્યુલા હોય, તો કોઈ મોટા O સંકેતમાં એસિમપ્ટોટિક રનિંગ ટાઈમ મેળવી શકે છે.


The idea of taking the maximal running time for all arguments of a given size is known as worst-case assumption.

આપેલા કદના તમામ દલીલો માટે મહત્તમ રનિંગ ટાઈમ લેવાનો વિચાર ખરાબ-કેસ ધારણા તરીકે ઓળખાય છે.


હું ગુજરાતી શીખી રહ્યો છું.


આજે હવામાન ખૂબ જ સુખદ છે.


શું તમે મને આ સમસ્યામાં મદદ કરી શકો છો?


I need to go to the market to buy some vegetables.

મારે શાકભાજી ખરીદવા માટે બજારમાં જવું પડશે.


The book is very interesting and informative.

પુસ્તક ખૂબ જ રસપ્રદ અને માહિતીપ્રદ છે.


આ વર્ષે કંપની સારું પ્રદર્શન કરી રહી છે.


The new product launch was a great success.

નવા ઉત્પાદનનું લોન્ચિંગ ખૂબ જ સફળ રહ્યું.


We need to improve our marketing strategy.

આપણે આપણી માર્કેટિંગ વ્યૂહરચનામાં સુધારો કરવાની જરૂર છે.


The meeting will be held tomorrow morning.

આવતીકાલે સવારે મીટિંગ યોજાશે.


Please send me the report by the end of the week.

કૃપા કરીને મને અઠવાડિયાના અંત સુધીમાં અહેવાલ મોકલો.


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

ટાઈપ ચેકર આપેલા અભિવ્યક્તિ સાથે મેળ ખાય છે અને દરેક પ્રકાર માટે સંબંધિત ટાઈપિંગ નિયમનું અલ્ગોરિધમિક વાંચન અનુસરે છે.


We are using helper functions for operator and function applications for better readability.

વધુ સારી રીતે વાંચી શકાય તે માટે, અમે ઓપરેટર અને ફંક્શન એપ્લિકેશન માટે સહાયક કાર્યોનો ઉપયોગ કરી રહ્યા છીએ.


The evaluator matches on the given expression and for each variant follows the algorithmic reading of the respective evaluation rule.

મૂલ્યાંકનકર્તા આપેલા અભિવ્યક્તિ સાથે મેળ ખાય છે અને દરેક પ્રકાર માટે સંબંધિત મૂલ્યાંકન નિયમનું અલ્ગોરિધમિક વાંચન અનુસરે છે.


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

મિની-ઓકેમલ માટેના લેક્સરને કામ કરવાની જરૂર છે, મુખ્યત્વે કારણ કે તેને ઓળખકર્તા (એટલે કે, ચલો) અને સંખ્યાના અચલોને ઓળખવાની જરૂર છે.


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.

અચલ સાચું અને ખોટું અને જો જેવા કીવર્ડ્સને પ્રથમ ઓળખકર્તા તરીકે ઓળખવામાં આવે છે અને પછી સંબંધિત અચલ અથવા કીવર્ડ ટોકન્સમાં રૂપાંતરિત કરવામાં આવે છે.


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

OCaml ને અનુસરીને, એક ઓળખકર્તા નાના અક્ષરથી શરૂ થવો જોઈએ અને પછી અંકો, નાના અને મોટા અક્ષરો અને વિશેષ અક્ષરો ‘_’ (અન્ડરલાઇન) અને ‘'’ (અવતરણ) સાથે ચાલુ રહી શકે છે.


The parsing grammar for Mini-OCaml expressions has 6 levels: expif, fun, lettop level cexp ≤ comparisons sexp+,− additive operators mexp· multiplicative operators aexp function applications pexp bottom level.

મિની-ઓકેમલ અભિવ્યક્તિઓ માટેના પાર્સિંગ વ્યાકરણમાં 6 સ્તરો છે: expif, fun, lettop સ્તર cexp ≤ સરખામણીઓ sexp+,− ઉમેરણ ઓપરેટરો mexp· ગુણાકાર ઓપરેટરો aexp ફંક્શન એપ્લિકેશન્સ pexp તળિયે સ્તર.


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

ટોચનું સ્તર પ્રત્યય શબ્દસમૂહોની કાળજી લે છે, જે ટોચના સ્તર પર પુનરાવર્તન કરે છે.


Additive and multiplicative operators and function applications are realized with left-associativity, and comparisons are realized without associativity, deviating from OCaml.

ઉમેરણ અને ગુણાકાર ઓપરેટરો અને ફંક્શન એપ્લિકેશન્સ ડાબી-એસોસિએટીવિટી સાથે અનુભવાય છે, અને સરખામણીઓ એસોસિએટીવિટી વિના અનુભવાય છે, જે OCaml થી અલગ છે.


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

નીચલું સ્તર ચલો, અચલો અને કૌંસવાળી અભિવ્યક્તિઓની કાળજી લે છે.


Note that we follow OCaml’s concrete syntax for typed lambda expressions in that we require parentheses around typed argument variables.

ધ્યાન રાખો કે અમે ટાઇપ કરેલા લેમ્ડા અભિવ્યક્તિઓ માટે OCaml ના કોંક્રિટ સિન્ટેક્સને અનુસરીએ છીએ જેમાં અમને ટાઇપ કરેલા આર્ગ્યુમેન્ટ ચલોની આસપાસ કૌંસની જરૂર છે.


We remark that the lexer follows the longest munch rule when it reads identifiers and numbers.

અમે નોંધ્યું છે કે લેક્સર સૌથી લાંબો મંચ નિયમ અનુસરે છે જ્યારે તે ઓળખકર્તા અને સંખ્યાઓ વાંચે છે.


The running time of an expression can be defined as the number of function calls needed for its execution.

એક અભિવ્યક્તિના રનિંગ ટાઈમને તેના અમલ માટે જરૂરી ફંક્શન કોલ્સની સંખ્યા તરીકે વ્યાખ્યાયિત કરી શકાય છે.


A function that has linear running time has the property that the execution time grows at most linearly with the argument size.

જે ફંક્શનમાં રેખીય રનિંગ ટાઈમ હોય છે તેમાં એ ગુણધર્મ હોય છે કે એક્ઝિક્યુશનનો સમય વધુમાં વધુ આર્ગ્યુમેન્ટ સાઈઝ સાથે રેખીય રીતે વધે છે.


Linearithmic time is almost like linear time and behaves the same in practice.

લિનિયરિધમિક સમય લગભગ રેખીય સમય જેવો જ છે અને વ્યવહારમાં તે જ રીતે વર્તે છે.


The running times for list sorting algorithms are interesting.

લિસ્ટ સોર્ટિંગ એલ્ગોરિધમ્સ માટેના રનિંગ ટાઈમ રસપ્રદ છે.


A good measure of the abstract running time of an expression is the number of function calls needed for its execution.

એક અભિવ્યક્તિના અમૂર્ત રનિંગ ટાઈમનું સારું માપ તેના અમલ માટે જરૂરી ફંક્શન કોલ્સની સંખ્યા છે.


We remark that we distinguish between function applications and function calls.

અમે નોંધ્યું છે કે અમે ફંક્શન એપ્લિકેશન્સ અને ફંક્શન કોલ્સ વચ્ચે તફાવત કરીએ છીએ.


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

એલ્ગોરિધમનો રનિંગ સમય એવું માને છે કે ક્ષેત્રની ઍક્સેસ સતત સમય છે, જે એરે માટે સાચું છે.


Binary search distinguishes itself from linear search, which has linear running time.

બાઈનરી સર્ચ પોતાને લીનિયર સર્ચથી અલગ પાડે છે, જેનો રનિંગ સમય લીનિયર હોય છે.


Binary search usually returns an index where the element searched for occurs.

બાઈનરી સર્ચ સામાન્ય રીતે એક ઇન્ડેક્સ આપે છે જ્યાં શોધેલ તત્વ આવે છે.


To ease the presentation, we work with a three-valued constructor type.

પ્રસ્તુતિને સરળ બનાવવા માટે, અમે ત્રણ-મૂલ્યના કન્સ્ટ્રક્ટર પ્રકાર સાથે કામ કરીએ છીએ.


The binary search function can be declared as follows.

બાઈનરી સર્ચ ફંક્શનને નીચે પ્રમાણે જાહેર કરી શકાય છે.


કાર્યકર ફંક્શન પૂંછડી-રિકર્સિવ છે.


The array segment to be considered is at least halved upon recursion.

ગણવામાં આવનાર એરે સેગમેન્ટ રિકર્શન પર ઓછામાં ઓછું અડધું થઈ જાય છે.


બાઈનરી સર્ચ બે ઇન્વેરિયન્ટ્સને સંતોષે છે.


The state of the array agrees with the initial state.

એરેની સ્થિતિ પ્રારંભિક સ્થિતિ સાથે સંમત થાય છે.


All elements to the left are smaller than x.

ડાબી બાજુના બધા તત્વો x કરતા નાના છે.


All elements to the right are greater than x.

જમણી બાજુના બધા તત્વો x કરતા મોટા છે.


The correctness of binary search is easily verified.

બાઈનરી સર્ચની ચોકસાઈ સરળતાથી ચકાસવામાં આવે છે.


Linear search generalizes binary search.

લીનિયર સર્ચ બાઈનરી સર્ચને સામાન્ય બનાવે છે.


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

એક ફંક્શન જાહેર કરો જે તપાસે છે કે કોઈ મૂલ્ય એરેમાં આવે છે કે નહીં.


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

લીનિયર સર્ચનો રનિંગ સમય O(n) હોવો જોઈએ.


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

એક ફંક્શન જાહેર કરો જે તપાસે છે કે શું કોઈ i ≤ n છે કે જેથી f(i) = x.


A function f is increasing if f(i) ≤ f(j) whenever i ≤ j.

જો i ≤ j હોય, તો ફંક્શન f વધતું જાય છે જો f(i) ≤ f(j) હોય.


There is an elegant algorithm reversing the elements of an array.

એક એવો સુંદર અલ્ગોરિધમ છે જે એરેના તત્વોને ઉલટાવે છે.


The algorithm is based on a function swapping values.

અલ્ગોરિધમ મૂલ્યોની અદલાબદલી કરતા ફંક્શન પર આધારિત છે.


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

અલ્ગોરિધમ હવે એરેમાં સેગમેન્ટ i < j ને ઉલટાવે છે.


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, જ્યાં સુધી y ≤ x હોય ત્યાં સુધી x માંથી y બાદબાકી કરીને મેળવવામાં આવે છે.


The function terminates since recursion decreases the second argument.

કારણ કે પુનરાવર્તન બીજા દલીલને ઘટાડે છે, ફંક્શન સમાપ્ત થાય છે.


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.

આપણે જોઈએ છીએ કે દરેક સંખ્યા x માં 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 નો GCD કહીએ છીએ જો z ના વિભાજક x અને y ના બરાબર સામાન્ય વિભાજક હોય.


0 અને 0 નો GCD 0 છે.


બે સંખ્યાઓનો GCD અનન્ય રીતે અસ્તિત્વમાં છે.


x અને x નો GCD x છે.


શૂન્ય નિયમ: x અને 0 નો GCD x છે.


Symmetry: The GCD of x and y is the GCD of y and x.

સપ્રમાણતા: x અને y નો GCD એ y અને x નો GCD છે.


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

અમારું લક્ષ્ય એવો અલ્ગોરિધમ શોધવાનું છે જે બે સંખ્યાઓનો 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 ધરાવે છે અને જેમનો સરવાળો નાનો છે.


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

યાદી [10, 11, 12] ને ત્રણ બ્લોક્સ સાથે સંગ્રહિત કરી શકાય છે જે લિંક્સ દ્વારા જોડાયેલા છે.


Each of the 3 blocks has two fields, where the first field represents a number in the list and the second field holds a link.

દરેક 3 બ્લોકમાં બે ક્ષેત્રો છે, જ્યાં પ્રથમ ક્ષેત્ર યાદીમાં એક સંખ્યાનું પ્રતિનિધિત્વ કરે છે અને બીજું ક્ષેત્ર એક લિંક ધરાવે છે.


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

લિંક્સ હંમેશા બ્લોક્સ તરફ નિર્દેશ કરે છે અને બ્લોક્સના સરનામાં દ્વારા રજૂ થાય છે.


The fields of a block are allocated consecutively in the heap array.

બ્લોકના ક્ષેત્રો હીપ એરેમાં ક્રમિક રીતે ફાળવવામાં આવે છે.


The address of a block is the index of its first field in the heap array.

બ્લોકનું સરનામું હીપ એરેમાં તેના પ્રથમ ક્ષેત્રનો ઇન્ડેક્સ છે.


Thus the above linked block representation of the list [10,11,12] is represented with the following segment in the heap.

આમ, યાદી [10,11,12] નું ઉપરોક્ત લિંક્ડ બ્લોક પ્રતિનિધિત્વ હીપમાં નીચેના સેગમેન્ટ સાથે રજૂ થાય છે.


Note that the representation of the empty list as -1 is safe since the addresses of blocks are nonnegative numbers.

ધ્યાન રાખો કે ખાલી યાદીનું -1 તરીકેનું પ્રતિનિધિત્વ સલામત છે કારણ કે બ્લોક્સના સરનામાં બિન-નકારાત્મક સંખ્યાઓ છે.


Given a linked block representation of a list we can freely choose where the blocks are allocated in the heap.

યાદીના લિંક્ડ બ્લોક પ્રતિનિધિત્વને જોતાં, અમે મુક્તપણે પસંદ કરી શકીએ છીએ કે બ્લોક્સ હીપમાં ક્યાં ફાળવવામાં આવે છે.


There is no particular order to observe, except that the fields of a block must be allocated consecutively.

અવલોકન કરવા માટે કોઈ ચોક્કસ ક્રમ નથી, સિવાય કે બ્લોકના ક્ષેત્રો ક્રમિક રીતે ફાળવવામાં આવશ્યક છે.


It is also perfectly possible to represent circular lists.

પરિપત્ર યાદીઓનું પ્રતિનિધિત્વ કરવું પણ સંપૂર્ણપણે શક્ય છે.


We emphasize that mathematical lists cannot be circular.

અમે ભારપૂર્વક જણાવીએ છીએ કે ગાણિતિક યાદીઓ પરિપત્ર હોઈ શકતી નથી.


Lists as they appear with the block representation are commonly called linked lists.

બ્લોક પ્રતિનિધિત્વ સાથે દેખાતી યાદીઓને સામાન્ય રીતે લિંક્ડ લિસ્ટ કહેવામાં આવે છે.


How many blocks and how many fields are required to store the list [1,2,3,4] in a heap using the linked block representation?

લિંક્ડ બ્લોક પ્રતિનિધિત્વનો ઉપયોગ કરીને હીપમાં યાદી [1,2,3,4] સંગ્રહિત કરવા માટે કેટલા બ્લોક્સ અને કેટલા ક્ષેત્રોની જરૂર છે?


We will work with a heap implementing the signature module type HEAP.

અમે હીપ સાથે કામ કરીશું જે સિગ્નેચર મોડ્યુલ પ્રકાર HEAP ને અમલમાં મૂકે છે.


The function allocates a new block of the given length in the heap and returns the address of the block.

આ ફંક્શન હીપમાં આપેલ લંબાઈનો નવો બ્લોક ફાળવે છે અને બ્લોકનું સરનામું પરત કરે છે.


Blocks must have at least length 1 (that is, at least one field).

બ્લોક્સની લંબાઈ ઓછામાં ઓછી 1 હોવી જોઈએ (એટલે કે, ઓછામાં ઓછું એક ક્ષેત્ર).


The function get yields the value in the field of a block, where the field is given by its index in the block.

ફંક્શન get બ્લોકના ક્ષેત્રમાં મૂલ્ય આપે છે, જ્યાં ક્ષેત્રને બ્લોકમાં તેના ઇન્ડેક્સ દ્વારા આપવામાં આવે છે.


The function set replaces the value in the field of a block.

ફંક્શન set બ્લોકના ક્ષેત્રમાં મૂલ્યને બદલે છે.


Thus we may think of blocks as mutable objects.

આમ, આપણે બ્લોક્સને પરિવર્તનશીલ ઑબ્જેક્ટ તરીકે વિચારી શકીએ છીએ.


The function release is given the address of an allocated block and deallocates this block and all blocks allocated after this block.

ફંક્શન release ને ફાળવેલા બ્લોકનું સરનામું આપવામાં આવે છે અને આ બ્લોક અને આ બ્લોક પછી ફાળવેલા તમામ બ્લોક્સને મુક્ત કરે છે.