2011-08-25 20 views
7

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

FileStream 
ReadWriteStream 
Set 
Dictionary 
OrderedCollection 
SortedCollection 
Bag 
Interval 
Array 

कौन कक्षाएं Python, Perl और रूबी में बराबर या मान्य अर्थ प्रतिस्थापन हो सकता है? मुझे सिंटैक्स की तुलना में कई भाषा तुलना पृष्ठ मिल गए हैं, हालांकि ऐसा लगता है कि कोर और बेस लाइब्रेरीज़ के अनुवाद की बात आती है।

मुझे यह भी आश्चर्य है कि पाइथन, पर्ल या रूबी में बेस या कोर क्लास है जो स्मॉलटाक या उपाध्यक्ष में मौजूद नहीं है?

+1

जाहिर है (उत्तर से) आप केवल उपयोगी सवाल का जवाब देने के लिए थोड़ा स्मालटाक और _any के कुछ अन्य भाषाओं के one_ पता की जरूरत है। और जवाब देने में मूल्य है भले ही यह "स्वीकार्य [प्राप्त करने की संभावना नहीं है। ' अगर आपको लगता है कि यह "सीधे उत्तर देने के लिए बहुत खुला है", तो आपको बंद करने के लिए मतदान करना चाहिए था। – agf

+0

मुझे आपके दावों को समझ में नहीं आया है। क्या आप स्पष्ट कर सकते हो? यह विशिष्ट और स्पष्ट उत्तरों के साथ एक विशिष्ट सवाल प्रतीत होता है। – user869097

+0

मैं अब एक हटाई गई टिप्पणी का जवाब दे रहा था। – agf

उत्तर

7

पर्ल

मैं, पर्ल के लिए जवाब देंगे के बाद से मैं दोनों पर्ल और स्मालटाक में धाराप्रवाह हूँ।

स्मॉलटॉक का शब्दकोश पर्ल के हैश प्रकार के काफी करीब है। एक शब्दकोश कुंजी के लिए ऑब्जेक्ट समतुल्य का उपयोग करता है। पर्ल कुंजी के लिए सरल स्ट्रिंग का उपयोग करता है, इसलिए लचीलापन कुछ हद तक सीमित है।

स्मॉलटॉक का ऑर्डरर्ड चयन पर्ल के सरणी प्रकार के काफी करीब है।

स्मॉलटॉक का फ़ाइलस्ट्रीम कुछ हद तक पर्ल के फाइलहैंडल्स की तरह है, इस अर्थ में कि वे बाहरी फ़ाइल या डिवाइस पर डेटा की एक धारा का प्रतिनिधित्व करते हैं।

और यह इसके बारे में है, क्योंकि पर्ल के पास केवल हैश और सरणी और फ़ाइल हैंडल हैं। :)

+0

हैश :: Util :: FieldHash फ़ंक्शंस का उपयोग करके आप उन चाबियों के साथ हैंश प्राप्त कर सकते हैं जो ऑब्जेक्ट्स और अन्य प्रकारों के लिए पॉइंटर्स को इंगित करते हैं जो क्लोनिंग से बचते हैं और जिन ऑब्जेक्ट का उल्लेख करते हैं, उनके साथ जीसीड प्राप्त करते हैं। – MkV

+0

सबसे अच्छा फिट बैठने वाले सीपीएएन मॉड्यूल के नाम जोड़ें। – daxim

2

अजगर

FileStream -> file 
ReadWriteStream -> file 
Set -> set 
Dictionary -> dict 
OrderedCollection -> list 
SortedCollection -> no equivalent object (must call sort on a list) 
Bag -> no equivalent object (must implement using dict) 
Interval -> no equivalent object (but a range() function exists for making lists) 
Array -> no equivalent (tuple is read-only, fixed length. list is variable length) 

मैं नोट करना चाहिए, अजगर 2.7 के लिए एक collections.Counter उद्देश्य यह है कि बैग के बराबर है नहीं है।

+0

'हेपैक' आंशिक रूप से क्रमबद्ध संग्रह है। क्या 'array.array' एक छोटी सी चीज की तरह है? साथ ही, मुझे लगता है कि 'संग्रह। काउंटर' (पायथन 2.7) एक थैला है। अंतराल के लिए 'टुकड़ा' या 'islice' के बारे में क्या? – agf

+0

पायथन की array.array करीब है, लेकिन इसमें केवल उसी प्रकार की वस्तुएं होती हैं। मुझे यकीन नहीं है कि अंतराल के लिए टुकड़ा कैसे बदल सकता है। हालांकि इसके बारे में सोचते हुए, xrange एक अधिक उपयुक्त समकक्ष हो सकता है। लेकिन, श्रेणी पायथन 3.0 में एक उन्नत xrange() में बदल रही है। – David

4

रूबी

FileStream   -> File 
ReadWriteStream -> IO (or other things that duck type like it) 
Set    -> require 'set', then use the Set class 
Dictionary   -> Hash 
OrderedCollection -> Array 
SortedCollection  nothing similar 
Bag     nothing similar 
Interval   -> Range 
Array     Ruby has no fixed-length collection class. 
संबंधित मुद्दे