আমার একটি তালিকা রয়েছে, এতে এমন উপাদান থাকতে পারে যা সমান হিসাবে তুলনা করবে। আমি অনুরূপ তালিকা চাই তবে একটি উপাদান মুছে ফেলাতে চাই। সুতরাং (এ, বি, সি, বি, ডি) থেকে আমি উদাহরণস্বরূপ (এ, সি, বি, ডি) পেতে কেবল একটি বি "অপসারণ" করতে সক্ষম হতে চাই। ফলাফলের উপাদানগুলির ক্রম কোনও বিষয় নয়।
আমার ওয়ার্কিং কোড রয়েছে, স্কালায় লিস্প-অনুপ্রাণিত ভাবে লেখা। এটি করার মতো আরও কোনও মুশকিল উপায় আছে?
প্রসঙ্গটি এমন একটি কার্ড গেম যেখানে দুটি ডেক স্ট্যান্ডার্ড কার্ড প্লে হয়, সুতরাং ডুপ্লিকেট কার্ডগুলি থাকতে পারে তবে এখনও একবারে একটি খেলেছে।
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)
}