Q (Kx Systems से प्रोग्रामिंग भाषा): Difference between revisions

From Vigyanwiki
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 61: Line 61:
इन संस्थाओं को फ़ंक्शंस के माध्यम से हेरफेर किया जाता है, जिसमें Q के साथ आने वाले अंतर्निहित फ़ंक्शंस (जिन्हें के (कार्यक्रम निर्माण लैंग्वेज) मैक्रोज़ के रूप में परिभाषित किया गया है) और उपयोगकर्ता-परिभाषित फ़ंक्शंस सम्मिलित हैं। फ़ंक्शंस एक अकड़ा  प्रकार हैं, और इन्हें सूचियों, शब्दकोशों और तालिकाओं में रखा जा सकता है, या पैरामीटर के रूप में अन्य फ़ंक्शंस में पास किया जा सकता है।
इन संस्थाओं को फ़ंक्शंस के माध्यम से हेरफेर किया जाता है, जिसमें Q के साथ आने वाले अंतर्निहित फ़ंक्शंस (जिन्हें के (कार्यक्रम निर्माण लैंग्वेज) मैक्रोज़ के रूप में परिभाषित किया गया है) और उपयोगकर्ता-परिभाषित फ़ंक्शंस सम्मिलित हैं। फ़ंक्शंस एक अकड़ा  प्रकार हैं, और इन्हें सूचियों, शब्दकोशों और तालिकाओं में रखा जा सकता है, या पैरामीटर के रूप में अन्य फ़ंक्शंस में पास किया जा सकता है।


[[Category:Articles with hatnote templates targeting a nonexistent page]]
 
[[Category:CS1 maint]]
 
[[Category:Collapse templates]]
 
[[Category:Created On 24/07/2023]]
 
[[Category:Machine Translated Page]]
 
[[Category:Navigational boxes| ]]
 
[[Category:Navigational boxes without horizontal lists]]
 
[[Category:Official website not in Wikidata]]
 
[[Category:Pages with script errors]]
 
[[Category:Pages with syntax highlighting errors]]
 


==उदाहरण==
==उदाहरण==
Line 104: Line 104:
प्रत्यक्ष कार्यान्वयन में, अभिव्यक्ति  "x" तक, 0 से x-1 तक पूर्णांकों की गणना करता है, 1+ सूची के प्रत्येक तत्व में 1 जोड़ता है और पीआरडी सूची का उत्पाद लौटाता है।
प्रत्यक्ष कार्यान्वयन में, अभिव्यक्ति  "x" तक, 0 से x-1 तक पूर्णांकों की गणना करता है, 1+ सूची के प्रत्येक तत्व में 1 जोड़ता है और पीआरडी सूची का उत्पाद लौटाता है।


पुनरावर्ती कार्यान्वयन में, सिंटैक्स $[condition; expr1; expr2] एक टर्नरी सशर्त है - यदि शर्त सत्य है तो expr1 वापस कर दिया जाता है; अन्यथा expr2 लौटा दिया जाता है। अभिव्यक्ति .z.s जावा में 'यह' या पायथन में 'स्वयं' के बराबर है - यह युक्त वस्तु का एक संदर्भ है, और क्यू में कार्य को स्वयं को कॉल करने में सक्षम बनाता है।
पुनरावर्ती कार्यान्वयन में, सिंटैक्स $[स्थिति; परीक्षण1; परीक्षण2] एक टर्नरी सशर्त है - यदि शर्त सत्य है तो परीक्षण1 वापस कर दिया जाता है; अन्यथा परीक्षण2 लौटा दिया जाता है। अभिव्यक्ति .z.s जावा में 'यह' या पायथन में 'स्वयं' के बराबर है - यह युक्त वस्तु का एक संदर्भ है, और क्यू में कार्य को स्वयं को कॉल करने में सक्षम बनाता है।


जब x 2 से बड़ा पूर्णांक है, तो निम्न कार्य 1 लौटाएगा यदि यह अभाज्य है, अन्यथा 0:
जब x 2 से बड़ा पूर्णांक है, तो निम्न कार्य 1 लौटाएगा यदि यह अभाज्य है, अन्यथा 0:
Line 147: Line 147:
*{{cite book|last=पसरिस|first=निक|title=क्यू युक्तियाँ: तेज़, स्केलेबल और रखरखाव योग्य केडीबी+|isbn=978-9-8813-8990-9}}
*{{cite book|last=पसरिस|first=निक|title=क्यू युक्तियाँ: तेज़, स्केलेबल और रखरखाव योग्य केडीबी+|isbn=978-9-8813-8990-9}}
==बाहरी संबंध==
==बाहरी संबंध==
* {{Official website|kx.com}}, केx Systems
* {{Official website|kx.com}}, केएक्स प्रणाली
* {{Official website|kx.com/solutions}}, केडीबी+
* {{Official website|kx.com/solutions}}, केडीबी+
* [https://code.kx.com/ Online documentation and developer site]
* [https://code.kx.com/ ऑनलाइन दस्तावेज़ीकरण और डेवलपर साइट]
* [http://www.timestored.com/kdb-guides/ Online केडीबी Tutorials]
* [http://www.timestored.com/kdb-guides/ ऑनलाइन केडीबी ट्यूटोरियल]
* [http://www.timestored.com/qstudio qStudio an IDE with timeseries charting for केडीबी]
* [http://www.timestored.com/qstudio क्यूस्टूडियो केडीबी के लिए टाइमसीरीज़ चार्टिंग के साथ एक आईडीई है]
* [https://code.kx.com/developer/ केx Developer, an IDE for केडीबी+]
* [https://code.kx.com/developer/ केएक्स डेवलपर, केडीबी+ के लिए एक आईडीई]
* [http://kxsystems.github.io/ केडीबी+ repositories on GitHub]
* [http://kxsystems.github.io/ गिटहब पर केडीबी+ रिपॉजिटरी]
* [https://code.kx.com/q4m3/ Free online version of ''Q for Mortals'']
* [https://code.kx.com/q4m3/ मॉर्टल्स के लिए क्यू का निःशुल्क ऑनलाइन संस्करण]
* [https://www.youtube.com/watch?v=8eoysfqO3UY ''Q for All'' video tutorials]
* [https://www.youtube.com/watch?v=8eoysfqO3UY सभी वीडियो ट्यूटोरियल के लिए प्रश्न]
* [https://code.kx.com/q/wp/ Technical Whitepapers]
* [https://code.kx.com/q/wp/ तकनीकी श्वेतपत्र]
* [https://github.com/timestored/jq jq, an implementation of q on the JVM]
* [https://github.com/timestored/jq जेजेक्यू, जेवीएम पर क्यू का कार्यान्वयन]


{{APL programming language}}
{{APL programming language}}
[[Category: एपीएल प्रोग्रामिंग भाषा परिवार]] [[Category: ऐरे प्रोग्रामिंग भाषाएँ]] [[Category: डेटा-केंद्रित प्रोग्रामिंग भाषाएँ]] [[Category: गतिशील प्रोग्रामिंग भाषाएँ]] [[Category: फ़ंक्शन-स्तरीय भाषाएँ]] [[Category: मालिकाना डेटाबेस प्रबंधन प्रणाली]]


 
[[Category:Articles with hatnote templates targeting a nonexistent page]]
 
[[Category:CS1 maint]]
[[Category: Machine Translated Page]]
[[Category:Collapse templates]]
[[Category:Created On 24/07/2023]]
[[Category:Created On 24/07/2023]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Official website not in Wikidata]]
[[Category:Pages with script errors]]
[[Category:Pages with syntax highlighting errors]]
[[Category:Vigyan Ready]]

Latest revision as of 22:01, 10 October 2023

क्यू
Paradigmऐरे, कार्यात्मक
द्वारा डिज़ाइन किया गयाआर्थर व्हिटनी
Developerकेएक्स सिस्टम
पहली प्रस्तुति2003[1]
Stable release
4.0 / [2]
टाइपिंग अनुशासनडायनामिक, मजबूत
वेबसाइटcode.kx.com
Influenced by
ए+, एपीएल, स्कीम, के

Q, आर्थर व्हिटनी द्वारा विकसित सरणी प्रसंस्करण के लिए एक कार्यक्रम निर्माण लैंग्वेज है। यह अमुक्त स्रोत सॉफ्टवेयर है, जिसका व्यवसायीकरण केएक्स सिस्टम द्वारा किया गया है। Q, केडीबी+ के लिए क्वेरी लैंग्वेज के रूप में कार्य करता है, जो एक डिस्क आधारित और इन-मेमोरी अकड़ाआधार, कॉलम-उन्मुखी डीबीएमएस कॉलम-आधारित अकड़ा-आधार है। केडीबी+ लैंग्वेज, के (कार्यक्रम निर्माण लैंग्वेज) पर आधारित है, जो लैंग्वेज एपीएल (कार्यक्रम निर्माण लैंग्वेज) का संक्षिप्त रूप है। Q, "K" के चारों ओर एक पतला आवरण है, जो अधिक पठनीय, अंग्रेजी जैसा अंतराफलक प्रदान करता है। उपयोग के घटनाओं में से एक वित्तीय समय श्रृंखला विश्लेषण है, क्योंकि कोई सटीक समय मिलान नहीं कर सकता है। एक उदाहरण बोली और उससे पहले पूछे जाने वाले प्रश्न का मिलान करना है। दोनों टाइमस्टैम्प थोड़े अलग हैं और वैसे भी मेल खाते हैं।[3]

अवलोकन

क्यू के मूलभूत निर्माण खंड परमाणु, सूचियाँ और कार्य हैं। परमाणुअदिश (कंप्यूटिंग) होते हैं और इसमें अकड़ा प्रकार संख्यात्मक, वर्ण, दिनांक और समय सम्मिलित हैं। सूची (कंप्यूटिंग) परमाणुओं (या अन्य सूचियों) का क्रमबद्ध संग्रह होती है, जिस पर उच्च स्तरीय अकड़ा संरचनाएं सहयोगी सरणी और तालिका अकड़ाआधार ) आंतरिक रूप से निर्मित होती हैं। शब्दकोश मानों की सूची की कुंजियो की सूची का एक मानचित्र है। एक तालिका प्रतीक कुंजियो और मानों के रूप में समान लंबाई वाली सूचियों (स्तंभों) का एक पक्षांतरित शब्दकोश है। एक की युक्त तालिका, उस तालिका के समान होती है जिस पर एक अद्वितीय कुंजी रखी होती है, एक शब्दकोश है जहां कुंजी और मान दो तालिकाओं के रूप में व्यवस्थित होते हैं।

निम्नलिखित कोड अकड़ा संरचनाओं के संबंधों को प्रदर्शित करता है। मूल्यांकन करने के लिए अभिव्यक्तियाँ क्यू )शीघ्र,के साथ उपसर्ग दिखाई देती हैं मूल्यांकन के आउटपुट के साथ नीचे दिखाए गए है :

q)`john / an atom of type symbol
`john
q)50    / an atom of type integer
50

q)`john`jack / a list of symbols
`john`jack
q)50 60 / a list of integers
50 60

q)`john`jack!50 60 / a list of symbols and a list of integers combined to form a dictionary
john| 50
jack| 60

q)`name`age!(`john`jack;50 60) / an arrangement termed a column dictionary
name| john jack
age | 50   60

q)flip `name`age!(`john`jack;50 60) / when transposed via the function "flip", the column dictionary becomes a table
name age
--------
john 50
jack 60

q)(flip (enlist `name)!enlist `john`jack)!flip (enlist `age)!enlist 50 60  / two equal length tables combined as a dictionary become a keyed table
name| age
----| ---
john| 50
jack| 60

इन संस्थाओं को फ़ंक्शंस के माध्यम से हेरफेर किया जाता है, जिसमें Q के साथ आने वाले अंतर्निहित फ़ंक्शंस (जिन्हें के (कार्यक्रम निर्माण लैंग्वेज) मैक्रोज़ के रूप में परिभाषित किया गया है) और उपयोगकर्ता-परिभाषित फ़ंक्शंस सम्मिलित हैं। फ़ंक्शंस एक अकड़ा प्रकार हैं, और इन्हें सूचियों, शब्दकोशों और तालिकाओं में रखा जा सकता है, या पैरामीटर के रूप में अन्य फ़ंक्शंस में पास किया जा सकता है।







उदाहरण

K की तरह, Q की व्याख्या की जाती है और किसी अभिव्यक्ति के मूल्यांकन का परिणाम तुरंत प्रदर्शित किया जाता है, जब तक कि अर्ध-विराम के साथ समाप्त न किया जाए। हैलो वर्ल्ड कार्यक्रम इस प्रकार तुच्छ है:

q)"Hello world!"
"Hello world!"

निम्नलिखित अभिव्यक्ति वेरिएबल x में संग्रहीत स्ट्रिंग्स की सूची को उनकी लंबाई के आधार पर क्रमबद्ध करती है:

x@idesc count each x

अभिव्यक्ति का मूल्यांकन दाएं से बाएं इस प्रकार किया जाता है:

  1. प्रत्येक x की गणना करें, सूची x में प्रत्येक शब्द की लंबाई लौटाएं।
  2. इडेस्क सूचकांक लौटाता है जो मानों की सूची को घटते क्रम में क्रमबद्ध करेगा।
  3. @ स्ट्रिंग्स की मूल सूची में अनुक्रमणिका के दाईं ओर पूर्णांक मानों का उपयोग करें।

भाज्य कार्य को सीधे Q रूप में कार्यान्वित किया जा सकता है

{prd 1+til x}

या पुनरावर्ती रूप में

{$[x=0;1;x*.z.s[x-1]]}

ध्यान दें कि दोनों ही घटनाओ में कार्य अंतर्निहित रूप से x नामक एक एकल तर्क लेता है - सामान्य तौर पर x, y और z नामक तीन अंतर्निहित तर्कों का उपयोग करना संभव है, या स्थानीय चर बाइंडिंग को स्पष्ट रूप से तर्क देना संभव है।

प्रत्यक्ष कार्यान्वयन में, अभिव्यक्ति "x" तक, 0 से x-1 तक पूर्णांकों की गणना करता है, 1+ सूची के प्रत्येक तत्व में 1 जोड़ता है और पीआरडी सूची का उत्पाद लौटाता है।

पुनरावर्ती कार्यान्वयन में, सिंटैक्स $[स्थिति; परीक्षण1; परीक्षण2] एक टर्नरी सशर्त है - यदि शर्त सत्य है तो परीक्षण1 वापस कर दिया जाता है; अन्यथा परीक्षण2 लौटा दिया जाता है। अभिव्यक्ति .z.s जावा में 'यह' या पायथन में 'स्वयं' के बराबर है - यह युक्त वस्तु का एक संदर्भ है, और क्यू में कार्य को स्वयं को कॉल करने में सक्षम बनाता है।

जब x 2 से बड़ा पूर्णांक है, तो निम्न कार्य 1 लौटाएगा यदि यह अभाज्य है, अन्यथा 0:

{min x mod 2_til x}

कार्य का मूल्यांकन दाएं से बाएं ओर किया जाता है:

  1. x तक x से कम गैर-नकारात्मक पूर्णांकों की गणना करें।
  2. 2_ गणना के पहले दो तत्वों (0 और 1) को हटा देता है।
  3. x मॉड मूल पूर्णांक और काटी गई सूची में प्रत्येक मान के बीच मॉड्यूलो विभाजन करता है।
  4. न्यूनतम मॉड्यूलो परिणाम की सूची का न्यूनतम मान ज्ञात करें।

Q कार्यक्रम निर्माण लैंग्वेज में अपना स्वयं का टेबल क्वेरी सिंटैक्स होता है जिसे qSQL कहा जाता है, जो पारंपरिक एसक्यूएल जैसा दिखता है लेकिन इसमें महत्वपूर्ण अंतर हैं, मुख्य रूप से इस तथ्य के कारण कि अंतर्निहित टेबल पंक्ति के की जगह कॉलम द्वारा उन्मुख होते हैं।

q)show t:([] name:`john`jack`jill`jane; age: 50 60 50 20) / define a simple table and assign to "t"
name age
--------
john 50
jack 60
jill 50
jane 20
 q)select from t where name like "ja*",age>50
 name age
 --------
 jack 60
 
 q)select rows:count i by age from t
 age| rows
 ---| ----
 20 | 1
 50 | 2
 60 | 1

संदर्भ

  1. Template:उद्धरण वेब
  2. Template:प्रेस विज्ञप्ति उद्धृत करें
  3. "क्यू संदर्भ कार्ड". Retrieved 15 April 2020.

अग्रिम पठन

  • उधारकर्ता, जेफरी ए. क्यू फॉर मॉर्टल्स: क्यू प्रोग्रामिंग में एक ट्यूटोरियल. ISBN 978-1-4348-2901-6.
  • पसरिस, निक. क्यू युक्तियाँ: तेज़, स्केलेबल और रखरखाव योग्य केडीबी+. ISBN 978-9-8813-8990-9.

बाहरी संबंध