प्रोग्रामिंग भाषाओं में दिलचस्प या अद्वितीय प्रकार? [बन्द है]


20

हमने सभी पूर्णांक, फ्लोटिंग पॉइंट, स्ट्रिंग और सामयिक दशमलव प्रकार देखे हैं। आपके द्वारा सामना किए गए कुछ सबसे अजीब या अद्वितीय या उपयोगी प्रकार क्या हैं, उपयोगी हैं या नहीं?


हाय user10008, प्रोग्रामर में आपका स्वागत है। क्या आपने हमारे अक्सर पूछे जाने वाले प्रश्न की जाँच की है ? आपको लगता है कि छह व्यक्तिपरक दिशानिर्देशों में से कौन सा आपके प्रश्न को पूरा करता है?

4
क्या कोई लिस्प के लिए प्रविष्टि लिखना पसंद करेगा?
मार्क सी

मैंने सोचा था कि यह एक ठग हो सकता है, लेकिन केवल इसलिए कि मेरा जवाब एक ठग था, इसलिए मैं एक लिंक पोस्ट करूँगा और शायद आपको कुछ अच्छे उत्तर मिलेंगे: प्रोग्रामर.स्टैकएक्सचेंज.
पीटर

@ मर्क: मैंने कोशिश की, लेकिन टाइप शायद लिस्प के बारे में कम से कम दिलचस्प चीजों में से एक हैं।
लैरी कोलमैन

@LarryC मुझे लगा कि यह लिस्प के लिए की सब व्यापक प्रयोग की वजह से सही सवाल था सूचियों ! सूचियाँ वाक्यविन्यास वृक्ष का निर्माण करती हैं और इससे आप ऐसे कार्यों को लिखने की अनुमति देते हैं जो आपके कोड में अद्भुत काम करते हैं, मैं इकट्ठा करता हूं। मैं अब रैकेट (पहले पीएलटी स्कीम ) सीख रहा हूं । लिस्प एकमात्र प्रोग्रामिंग भाषा है जिसे मैं वास्तव में प्रेरित और सीखने के लिए इच्छुक हूं।
मार्क सी

जवाबों:


18

मैं छोटा हूँ:

Maybe a

हास्केल में।

इस सरल निर्माण के साथ, भाषा दुर्घटनाओं के मुद्दे को हल करती है या NullPointerException, यह बड़े पैमाने पर टोनी होउ के "वन मिलियन मिस्टेक" को दरकिनार कर देती है :)

सच कहूँ, एक वैकल्पिक उपस्थिति संकलन-समय पर जाँच की? यह सपने की तरह है ...


1
या विकल्प के रूप में यह कई अन्य प्रोग्रामिंग भाषाओं में कहा जाता है।
जोनास

@ जोनास: मुझे स्वीकार करना चाहिए कि मुझे Optionनाम पसंद नहीं है । क्यों नहीं Optional! यह हो सकता है क्योंकि मैं कोई मूल वक्ता Optionनहीं हूं , लेकिन मेरे लिए "वैकल्पिक" अर्थ को व्यक्त नहीं करता है।
मथिउ एम।

Maybeनाम प्यारा है: "आप क्या है?" "शायद एक इंट"। हालाँकि, वास्तव में साफ-सुथरा सा यह है कि यह एक फनकार और एक सन्यासी दोनों है, जो सीधे शब्दों में कहें तो इसका मतलब है कि आपको मुफ्त में अशक्त प्रचार मिल रहा है। आपको कार्यों के अंदर या अपने कोड के बीच में शून्य चेक लगाने की आवश्यकता नहीं है; आपको केवल कभी भी अपने कोड के अंत में इसकी जांच करने की आवश्यकता है, यदि बिल्कुल भी।
तिखन जेल्विस

वहाँ एक है Maybe: रूबी के लिए इकाई lostechies.com/derickbailey/2010/10/10/the-maybe-monad-in-ruby
जेसन लुईस

15

मैं बारहमासी हूं void *। यह शायद मुझमें किसी चीज़ का गहरा दोष है।


2
हाँ। मुझे डर है कि वास्तव में यह क्या है। :) ओह, "अद्वितीय" के बजाय "दिलचस्प" के लिए +1। वस्तुनिष्ठ-सी स्पष्ट रूप से है void *और पास्कल / डेल्फी है Pointer
फ्रैंक शियरर

एक गैर प्रकार के अधिक haha, लेकिन आप यह तर्क नहीं दे सकते कि यह शक्तिशाली नहीं है
user10008

15
मुझे केवल अंतर्निहित निराशावाद से प्यार है, यह व्यक्त करता है: 'क्या आप उस चीज़ को वहां देख सकते हैं?' 'हाँ, यह क्या है?', 'कोई विचार नहीं।'
बिजिकलोप

मैंने हमेशा सोचा कि यह मज़ेदार था कि आप एक शून्य की घोषणा नहीं कर सकते लेकिन आप इसका पता लगा सकते हैं। मुझे लगता है कि संरचना के साथ {int ए; शून्य बी; इंट सी; } कि बी का पता ए और सी के बीच दरार का पता होना चाहिए, लेकिन नहीं, अनुमति नहीं है।
एंडी कैनफील्ड

इसलिए पास्कल "पॉइंटर" का उपयोग जेनेरिक पॉइंटर को दर्शाने के लिए किया जाता है, न कि "प्रक्रिया" के साथ भ्रमित करने के लिए।
umlcat

14

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

तालिका के प्रत्येक सूचकांक में कोई भी मूल भाषा संरचना (संख्या, बूलियन, स्ट्रिंग, फ़ंक्शन -yes, फ़ंक्शन लुआ - और टेबल पर टाइप हैं) प्राप्त कर सकते हैं।


ध्यान दें कि कैसे जावास्क्रिप्ट को एक समान तरीके से बनाया गया है, और पायथन को बहुत ही नींव पर बनाया गया है, जैसा कि शायद रूबी है।
9000

मुझे लगता है कि पर्ल और पीएचपी में भी यह संभव है, हां?
FrustratedWithFormsDesigner

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

9

मुझे आश्चर्य है कि किसी ने भी मोनाड्स या बीजगणित डेटाटिप्स का उल्लेख नहीं किया है।


हो सकता है हमें उदाहरण दिखाएं :)
nawfal

8

लिस्प के दो दिलचस्प प्रकार हैं: tऔर nil। उनके बारे में क्या दिलचस्प है कि सब कुछ एक है tऔर कुछ भी नहीं है nil


क्या आप गंभीर हैं? मैं नहीं जानता था कि।
मार्क सी

है nilएक t?
जॉन हैरोप 20


6

फोरट्रान के आम ब्लॉक हैं; यह आधुनिक भाषाओं में कम से कम सामान्य डेटा प्रकारों में से एक है, या, बल्कि कुशलतापूर्वक डेटा साझा करने का एक असामान्य तरीका है।

फोरट्रान 95 में अंतराल प्रकार और अंतर्निहित अंतराल अंकगणित हैं।

हास्केल में पाए जाने वाले मौद्रिक प्रकारों के बिना सूची पूरी नहीं होगी । उन्हें समझने के लिए आपको थोड़ा प्रयास करने की आवश्यकता है।


आह, UniData / UniVerse DBs की आंतरिक भाषा (UniBasic) में भी सामान्य ब्लॉक हैं।
डैन मैकग्राथ

एक आम ब्लॉक कोड का एक ब्लॉक है जो प्रोग्राम के विभिन्न हिस्सों द्वारा उपयोग किया जाता है?
मार्क सी

1
@MarkC IIRC मूल रूप से वैश्विक डेटा है, लेकिन प्रत्येक फ़ंक्शन जो एक्सेस करता है, उसे स्पष्ट रूप से यह कहना है कि यह शीर्ष पर जा रहा है
पीके।

5

डेल्फी के सेट हैं ( यह भी देखें ), जो मुझे नहीं लगता कि अन्य भाषाओं में उसी तरह लागू किया जाता है।

यह डेटाबेस में एक हवा: डी में बहु-चर विशेषताओं को संग्रहीत करता है


4

मुझे लगता है कि यह वास्तव में केवल एक शास्त्रीय वास्तुकला पर प्रोग्रामिंग से आने वाला अजीब है, लेकिन निश्चित रूप से मेरे लिए अपने सिर को चारों ओर लपेटने के लिए सबसे कठिन प्रकारों में से एक क्वांटम रजिस्टर था , जो कि QCL में दिखाई देता है


3

PL / SQL आपको प्रकार के चर घोषित करने देता है my_table.some_column%type... मुझे लगता है कि यह बहुत उपयोगी है।

और C # आपको वस्तुओं को अशक्त या नहीं घोषित करने देता है, हालांकि मुझे यकीन नहीं है कि यह एक प्रकार के रूप में गिना जाता है।


4
लेकिन cursor%rowtypeयहां तक ​​कि मजेदार भी है: यह एक गतिशील रूप से गठित रिकॉर्ड प्रकार है जो दर्शाता है कि कर्सर के क्वेरी रिटर्न कौन से कॉलम में हैं।
9000

.NET "Nullable" वास्तव में अपने आप में एक (जेनेरिक) प्रकार है।
कोनमन

3

जब मैं छोटा था तब यूफोरिया के डेटा प्रकारों के लिए मेरे दिल में एक नरम स्थान था

यह इस प्रकार संरचित है:

Object
-> Atom
-> Sequence
  • परमाणु = एक एकल संख्यात्मक मान
  • अनुक्रम = वस्तुओं का एक क्रम

    -- examples of atoms:
    
    0
    98.6
    -1e6
    
    -- examples of sequences:
    
    {2, 3, 5, 7, 11, 13, 17, 19}
    {1, 2, {3, 3, 3}, 4, {5, {6}}}
    {{"jon", "smith"}, 52389, 97.25}
    {}                        -- the 0-element sequence
    

    देखें: रेफरी मैनुअल

नोट: "जों" वास्तव में ASCII मूल्यों के अनुक्रम को लिखने का एक छोटा हाथ है। उदाहरण के लिए के "ABCDEFG"रूप में ही है{65, 66, 67, 68, 69, 70, 71}


7
ऐसा लगता है LISP की तरह ...
FrustratedWithFormsDesigner

वास्तविक डेटा प्रकार केवल बिट हैं।
दान मैकग्राथ

1
@FrustratedWithForms वही, मैंने सोचा, "अरे, उसने कहा, 'एटम'! यह (ए) लिस्प की तरह दिखता है, लेकिन अनावश्यक डिवाइडर के साथ।: पी
मार्क सी

3

फेलिक्स में अनाम योग हैं। प्रकार लिखा है:

typedef il = int + long;

जैसा कि यह सिद्धांत में होगा। मूल्य बदसूरत हैं:

case 0 of il (1)
case 1 of il (2L)

सिवाय शायद एक यूनिट राशि के लिए जैसे 3 = 1 + 1 + 1

case 0 of 3
case 1 of 3 

जो दुर्भाग्य से "सी अनुकूलता" के लिए शून्य मूल गिनती का उपयोग करता है। अज्ञात रूप से टाइप किए गए बीजीय प्रकारों के लिए बेनामी रकम आवश्यक है:

(1 + T * li) as li

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

ऊपर प्रयुक्त शॉर्टहैंड 3 प्यारा है, पुस्तकालय में निम्नलिखित है:

typedef void = 0;
typedef unit = 1;
typedef bool = 2;

और यह संकेतन:

 T ^ 3

स्थैतिक लंबाई 3 की एक सरणी है .. 3 एक पूर्णांक नहीं है, लेकिन 3 इकाइयों का योग है। क्या एक दया + सहयोगी नहीं है :)


2

q / kdb + में अंतर्निहित टेबल हैं। चूंकि यह एक प्रोग्रामिंग भाषा और कॉलम-ओरिएंटेड डेटाबेस है, इसलिए इसमें LINQ या ORM की कोई आवश्यकता नहीं है।

उदाहरण के लिए, इस तरह से एक तालिका बना सकते हैं (असाइनमेंट के :बजाय =सबसे भाषाओं में भेद किया जाता है):

people:([]name:`Joe`Amy`Sarah; age:17 15 18; GPA:3.5 3.8 3.33)

अब मैं अपनी तालिका देख सकता हूं:

q)show people
name  age GPA 
--------------
Joe   17  3.5 
Amy   15  3.8 
Sarah 18  3.33

और मैं इसे क्वेरी कर सकता हूं:

q)select from people where GPA>3.4
name age GPA
------------
Joe  17  3.5
Amy  15  3.8

2

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


3
यूनियन सी से आया है। एक अच्छा उदाहरण php में zval संरचना है।
मार्टिन विकमन

2
मैंने उन्हें एक Z80 एमुलेटर में उपयोग किया है, 16 बिट रजिस्टरों को आसानी से पूरे रजिस्टर (एचएल, बीसी) और 8-बिट रजिस्टरों (एच, एल, बी और सी) के रूप में उपयोग करने के लिए। यह दर्शाता है कि वे Z80 asm में कैसे उपयोग किए जाते हैं। इसके अलावा "वैरिएंट्स" में, एक वर्ग जो विभिन्न प्रकारों का मान रख सकता है (उदाहरण के लिए int / float) - यह निश्चित नहीं है कि मैंने उप-वर्ग का उपयोग क्यों नहीं किया, लेकिन यह उस समय समझ में
आया

@ggambett: मैंने अपने Z80 कार्यक्रमों के लिए बिल्कुल ऐसा ही किया है! केवल इतना है कि मैंने एफ रजिस्टर में व्यक्तिगत झंडे तक पहुंचने के लिए एक बिटफील्ड भी जोड़ा है।
कोनमन

2

मैं अभी भी अपने सिर को लपेटने की कोशिश कर रहा हूं कि एफ # और अन्य कार्यात्मक भाषाओं में मल्टी-पैरामीटर फ़ंक्शन क्या होता है। मूल रूप से int f (Foo, Bar) func f (Foo) बन जाता है

वह दो पैरामीटर फ़ंक्शन है जो एक फू लेता है, और एक बार और एक int देता है वास्तव में एक पैरामीटर फ़ंक्शन है जो एक फू लेता है और एक पैरामीटर फ़ंक्शन को वापस लेता है जो एक बार लेता है और एक इंट वापस करता है। लेकिन किसी तरह आप इसे दो मापदंडों के साथ कॉल कर सकते हैं यदि आप चाहें। मैंने यहाँ इसके बारे में एक पोस्ट लिखी थी


8
बल्कि, एक फ़ंक्शन एक फ़ंक्शन f(Foo, Bar)के समान है जो f(Foo)किसी अन्य फ़ंक्शन f'(Bar)को लौटाता है जो मान लौटाता है f(Foo, Bar)। यही है, यदि आप 'फू' तर्क को ठीक करते हैं, लेकिन 'बार' नहीं, तो आपके पास एक फ़ंक्शन है जो 'फू' पर निर्भर नहीं करता है, लेकिन फिर भी 'बार' तर्क पर निर्भर करता है। यह कार्यात्मक भाषाओं के लिए विशिष्ट है; इसे 'करी' कहा जाता है।
9000

2

नियमित अभिव्यक्ति:

वे अत्यंत शक्तिशाली हैं फिर भी कॉम्पैक्ट ऑब्जेक्ट।
जिन भाषाओं ने उन्हें बनाया है उनमें पाठ में हेरफेर करने की बड़ी क्षमता है (शब्द पार्स को सुन नहीं सकते हैं कि वे अच्छे नहीं हैं)।


2
रेगेक्स के साथ कई सरल व्याकरणों को पार्स करना पूरी तरह से संभव है। उदाहरण के लिए, रीगेक्स के सेट के शीर्ष पर तर्क की एक न्यूनतम के साथ इनआई फ़ाइल को पार्स करना अपेक्षाकृत तुच्छ है। बहुत सारे लोग जो गलती करते हैं वह बहुत जटिल व्याकरणों को पार्स करने की कोशिश कर रहा है (यानी एक्सएमएल / एचटीएमएल)।
मैथ्यू शारले


@ मर्क सी: शीर्ष का जवाब है (रिकॉर्ड तोड़ 4320 वोटों के साथ)। आप नहीं कर सकते
मार्टिन जॉर्ज

हाँ, वह हास्य के लिए था। जब मैंने मैथ्यू की टिप्पणी को पढ़ा तो यह दिमाग में आया।
मार्क सी

2

कार्यात्मक परिवार में मुट्ठी भर भाषाओं में एकता के रूप में जाना जाता है। एकता प्रकारों की विशिष्ट विशेषता यह है कि उनमें कोई जानकारी नहीं होती है, वे शून्य प्रकार के होते हैं। एक एकता प्रकार (कुछ भिन्नताओं में) भी इसका एकमात्र मूल्य है, या (अधिकांश अन्य में) का केवल एक मूल्य है (जो स्वयं एक प्रकार नहीं है)।

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

एकता भी तरह से सबसे ऐसी भाषाओं का वर्णन Enums, अन्य प्रकार के एक परिभाषित सेट के किसी भी रूप में एक नया प्रकार, या वर्णन करने के लिए अनुमति देकर है शायद प्रकार, मूल्यों या तो एक विशिष्ट प्रकार का एक मूल्य हो सकता है कि (एक पूर्णांक मान लीजिए) , या एक मूल्य है जो बिना मूल्य का प्रतिनिधित्व करता है।

कुछ भाषाएं जो उपयोगकर्ता परिभाषित समृद्धि प्रकारों को नियोजित नहीं करती हैं, उनमें अभी भी किसी न किसी रूप में एकता है। उदाहरण के लिए, अजगर कम से कम तीन एकता प्रकार हैं, NoneType, NotImplementedType, और EllipsisType। यह दिलचस्प है कि पहले दो दोनों का मतलब "नो वैल्यू" जैसा है, लेकिन तीसरे का उपयोग दिलचस्प विशेष मामलों का प्रतिनिधित्व करने के लिए जटिल मूल्यों (विशेष रूप से, स्लाइस एक्सप्रेशन) में किया जाता है।

एकता के अन्य दिलचस्प उदाहरणों NULLमें sql और undefinedजावास्क्रिप्ट में शामिल हैं, लेकिन voidC या C ++ में नहीं। voidविफल रहता है। भले ही यह बिना किसी जानकारी के मूल्य का वर्णन करता है, लेकिन कोई वास्तविक मूल्य प्रकार का नहीं हो सकता है void


मुझे लगता है कि आपका मतलब "इकाई प्रकार" है।
जेसन बेकर

2

रूबी का symbolप्रकार थोड़ा असामान्य है। यह अनिवार्य रूप से सिंगलटन पैटर्न को लागू करने वाला एक स्ट्रिंग है। या कुछ और। अब तक, मैंने पाया है कि प्रतीकों के लिए सबसे अच्छा उपयोग ट्रैकिंग राज्यों और फंक्शन नामों को पारित करने में होता है।


ओ (1) कुंजी तुलना के लिए एक नक्शे की कुंजी के रूप में भी।
जेरेमी हेइलर

खैर, यह वास्तव में असामान्य नहीं है। रूबी को यह स्मॉलटाक से विरासत में मिला, जो इसे लिस्प से विरासत में मिला। स्काला के पास भी है, मुझे लगता है। वास्तव में, लगभग हर भाषा कार्यान्वयन (संकलक या दुभाषिया) में आंतरिक रूप से एक प्रतीक तालिका होती है, लिस्प, स्मॉलटाक और रूबी बस इसे प्रोग्रामर को उजागर करती है।
जोर्ग डब्ल्यू मित्तग

1

कोबोल। अनिवार्य रूप से केवल दो बुनियादी डेटा प्रकार, तार और संख्या है, लेकिन आपको यह निर्दिष्ट करना बिल्कुल कैसे वे स्मृति में बाहर रखी रहे हैं, उदाहरण के लिए PIC S9(5)V99 COMP-3


मैं उसे हरा सकता हूं। बीसीपीएल के पास एक डेटा प्रकार है - शब्द; देख en.wikipedia.org/wiki/BCPL
स्टीफन सी

विभिन्न प्रकार की संख्याएँ हैं (COMP, COMP-1, COMP-2, COMP-3)।
डेविड थॉर्नले

वह भयानक लग रहा है। क्या आप उन विवरणों के बारे में विस्तार से बता सकते हैं?
मार्क सी

S= हस्ताक्षरित, 9(5)= 5 अंक, V= निहित दशमलव बिंदु, 99= 2 और अंक, COMP-3= बीसीडी + साइन नाइबल।
दान ०४

1

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


0

VHDL के भौतिक प्रकार हैं। इस तरह के एक शाब्दिक मूल्य और एक इकाई दोनों शामिल हैं। आप सबयूनिट्स को भी परिभाषित कर सकते हैं। उदाहरण के लिए, एक पूर्वनिर्धारित भौतिक प्रकार है time:

type time is range <machine dependant> to <machine dependant> 
units
  fs;
  ps = 1000 fs;
  ns = 1000 ps;
  us = 1000 ns;
  Ms = 1000 us;
  sec = 1000 ms;
  min = 60 sec;
  hr = 60 min;
end units;

ऑपरेटर ओवरलोडिंग के साथ, आप बहुत दिलचस्प चीजों को परिभाषित कर सकते हैं।


0

क्लोजर दिलचस्प है क्योंकि इसमें "अमूर्त" की मेटा-अवधारणा है जो भाषा में व्याप्त है। उदाहरण:

  • संग्रह
  • अनुक्रम (आलसी और गैर-आलसी)
  • उच्च आदेश कार्य
  • मुल्टीमेथड्स
  • प्रोटोकॉल
  • प्रबंधित संदर्भ
  • मैक्रो
  • विभिन्न अन्य .....

कुछ हद तक, अमूर्त " एकल जिम्मेदारी सिद्धांत " को चरम पर ले जाते हैं। यह आप पर निर्भर करता है कि आप उन्हें वह कार्यक्षमता प्राप्त करना चाहते हैं, जो आप चाहते हैं, लेकिन आप इस बारे में बेहद लचीले हो सकते हैं कि आप उन्हें एक साथ कैसे गोंद सकते हैं।

उदाहरण के लिए, यदि आप वंशानुक्रम के साथ एक वर्ग-आधारित OOP प्रणाली चाहते हैं, तो आप अपेक्षाकृत जल्दी से इन मूल सार में से एक का निर्माण कर सकते हैं।

व्यवहार में, अमूर्तताएं खुद को इस तरह से डिज़ाइन की जाती हैं कि कई कार्यान्वयन संभव हैं, उदाहरण के लिए clojure.lang.ISeq जैसे विशिष्ट इंटरफेस के माध्यम से अनुक्रम या clojure.lang.IF के लिए उच्च क्रम फ़ंक्शन।

इस विषय के बारे में एक दिलचस्प वीडियो है: द आर्ट ऑफ एब्स्ट्रेक्शन


0

यदि आप एक अद्वितीय प्रकार के साथ एक भाषा चाहते हैं तो BCPL के लिए सिर । इस भाषा में केवल एक डेटा प्रकार है, शब्द, भाषा कार्यान्वयन के लिए बिट्स की एक निश्चित संख्या है।


0

Googles Go में एक "चैनल" प्रकार है जो काफी अनूठा है।


1
चैनल अद्वितीय नहीं हैं। कई भाषाओं ने उन्हें। Google के अस्तित्व में आने से 10 साल पहले फेलिक्स ने :) Ocaml ने फेलिक्स के अस्तित्व में आने से 10 साल पहले उन्हें देखा था।
१३:१३ बजे यत्रिल्ल

और कम से कम एक अन्य भाषा थी, जिसमें ओक्लेमल के अस्तित्व में होने से पहले चैनल थे। अभी भी प्रोग्रामिंग भाषाओं में सबसे कम उपलब्ध प्रकारों में से एक है।
ब्रेनलैग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.