मेरे पास एक सूची है, जिसमें ऐसे तत्व हो सकते हैं जो समान के रूप में तुलना करेंगे। मैं एक समान सूची चाहूंगा, लेकिन एक तत्व को हटा दिया जाएगा। तो (ए, बी, सी, बी, डी) से मैं ए (ए, सी, बी, डी) प्राप्त करने के लिए सिर्फ एक बी को "हटाने" में सक्षम होना चाहूंगा। परिणाम में तत्वों का क्रम मायने नहीं रखता है।
मेरे पास वर्किंग कोड है, जो स्काला में एक लिस्प-प्रेरित तरीके से लिखा गया है। क्या ऐसा करने का एक अधिक मुहावरेदार तरीका है?
प्रसंग एक कार्ड गेम है जहाँ मानक कार्ड के दो डेक खेलने में होते हैं, इसलिए डुप्लिकेट कार्ड हो सकते हैं लेकिन फिर भी एक समय में एक ही खेला जाता है।
def removeOne(c: Card, left: List[Card], right: List[Card]): List[Card] = {
if (Nil == right) {
return left
}
if (c == right.head) {
return left ::: right.tail
}
return removeOne(c, right.head :: left, right.tail)
}
def removeCard(c: Card, cards: List[Card]): List[Card] = {
return removeOne(c, Nil, cards)
}