में {key, value} सूची में कोई मान ढूँढना मैं Erlang के लिए नया हूं और शायद मैं ट्रिगर में इस समस्या को याद करता हूं हालांकि यह मामूली है। मान लीजिए, मेरे पास erlang से प्राप्त {कुंजी, मान} जोड़े की एक सूची है: fun_info/1। मैं कार्य धैर्य जानना चाहता हूं, बाकी की सूची मेरे लिए कोई रूचि नहीं रखती है। इसलिए मैं की तरह कुछ लिखें:Erlang
find_value(_, []) ->
nothing;
find_value(Key, [{Key, Value} | _]) ->
Value;
find_value(Key, [_ | T]) ->
find_value(Key, T).
और फिर कार्य करें:
find_value(arity, erlang:fun_info(F)).
मैं ठीक काम करता है, लेकिन find_value की तरह कुछ एक बहुत आम दिनचर्या यह लिखने के लिए किया जाना चाहिए? हालांकि मैं बीआईएफ में अपना एनालॉग नहीं ढूंढ पाया। तो सवाल यह है: {कुंजी, मूल्य} tuples की सूची से एक कुंजी के लिए मूल्य प्राप्त करने के लिए यह एक अच्छा सुरुचिपूर्ण तरीका है?
यह बहुत अच्छा लगता है, लेकिन मैं फिर एक और मूर्खतापूर्ण सवाल है: ': = =' क्या है? क्यों '==' अवांछित है? – akalenuk
हाय! == संख्याओं की तुलना करने के लिए उपयोग किया जा सकता है, ताकि 1.0 बराबर 1 हो, लेकिन अन्य तुलनाओं में, आपको "सटीक" तुलना ऑपरेटर का उपयोग करना चाहिए, जो = = = (और 1.0 से 1.0 अलग करेगा), देखें: http://www.erlang.org/doc/reference_manual/expressions.html#id76768 – marcelog
यह दृष्टिकोण आलसी हास्केल के लिए अच्छा है, लेकिन एरलांग में इसे किसी भी मामले में संपूर्ण 'सूची' को पार करना होगा, जबकि 'get_value/2' बंद होने पर रोकता है पहला मैच –