2015-02-05 15 views
7

अमृत में, हम जोड़ सकते हैं, तोजुटना tuples

ex(52)> [1,2,3,4] ++ [5,6,7] 
[1, 2, 3, 4, 5, 6, 7] 

हम भी tuples जोड़ सकते हैं जैसे सूचियों? कुछ इस तरह?

iex(53)> {1,2,3,4} ++ {5,6,7} 
** (ArgumentError) argument error 
    :erlang.++({1, 2, 3, 4}, {5, 6, 7}) 

केवल दूसरी बात मैं के बारे में सोच सकते हैं सूची एक टपल कन्वर्ट करने के लिए, फिर वापस परिवर्तित to_list और to_tuple कार्यों का उपयोग कर टपल है। लेकिन यह रास्ता बहुत बेकार है।

उत्तर

21

आप tuples को संयोजित नहीं कर सकते हैं।

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

दूसरे शब्दों में, यदि आप टुपल्स को जोड़ना चाहते हैं, तो आपके पास गलत डेटा संरचना हो सकती है।

  • tuples लिखें

    1. उपयोग सूचियों: आपके पास दो विकल्प a ++ b के बजाय, बस {a, b}
  • +0

    धन्यवाद लिखते हैं, कि समझ में आता है! – User314159

    +0

    यदि मेरे पास ऐसी स्थिति है जहां मेरे पास 2 टुपल्स हैं, और मैं उन्हें एक साथ जोड़ना चाहता हूं, तो मुझे इसे करने के बारे में कैसे जाना चाहिए? क्या मुझे tuples को एक सूची में परिवर्तित करना होगा, और उसके बाद संयोजित करना होगा, और फिर इसे वापस एक टुपल में परिवर्तित करना होगा? – CMCDragonkai

    +4

    मुझे प्यार है जब भाषा डिजाइनर सवालों का जवाब देते हैं। उससे अब आधिकारिक नहीं मिल सकता है। – Dty