// ترتيب الأعداد والنصوص ثم البحث الثنائي في المتجه المرتب.
استورد std.io.println;
استورد std.text.number;
استورد std.text.transform;
استورد std.collections.sort;
عرف الرئيسية(): عدد {
دع الأعداد: متغير متجه عدد = [42, 7, 19, 3, 88, 1];
رتب_عدد(&متغير الأعداد);
دع الأسماء: متغير متجه نص = ["نور", "آدم", "زيد", "هدى"];
رتب_نصوص(&متغير الأسماء);
دع الفاصلة: نص = ", ";
اطبع_سطر(صل_النصوص(&الأسماء, &الفاصلة));
طابق بحث_ثنائي_عدد(&الأعداد, 19) مع
| اختياري.موجود(الموضع) -> { اطبع_سطر(طبيعي_إلى_نص(الموضع)); }
| اختياري.لا_شيء -> { اطبع_سطر("غير موجود"); };
اطبع_سطر(عدد_إلى_نص(الأعداد[0]));
أرجع 0;
}// Sorting numbers and text, then binary-searching the sorted vector.
import std.io.println;
import std.text.number;
import std.text.transform;
import std.collections.sort;
def main(): int {
let numbers: mutable vector int = [42, 7, 19, 3, 88, 1];
sort_int(&mutable numbers);
let names: mutable vector string = ["noor", "adam", "zaid", "huda"];
sort_texts(&mutable names);
let comma: string = ", ";
println(join(&names, &comma));
match binary_search_int(&numbers, 19) with
| option.some(index) -> { println(uint_to_text(index)); }
| option.none -> { println("missing"); };
println(int_to_text(numbers[0]));
return 0;
}
التشغيل
بالمفسر، دون ترجمة:
./build/sultanc run examples/ar/collections/sorting.snأو ترجمه إلى ملف تنفيذي:
./build/sultanc examples/ar/collections/sorting.sn -o build/example && ./build/example