أمثلة السلطان
برامج صغيرة كاملة، فكرة واحدة في كل ملف، بالعربية والإنجليزية. كل مثال يجتاز sultanc check.
الخوارزميات
- بحث ثنائي في متجه مرتب
algorithms/binary_search.sn - خوارزمية إقليدس مكتوبة يدويا ومقارنة بالمكتبة القياسية
algorithms/gcd.sn - ترتيب بالإدراج في المكان نفسه عبر مرجع متغير
algorithms/insertion_sort.sn - ضرب مصفوفتين مخزنتين في متجهين
algorithms/matrix_multiply.sn - غربال إراتوستينس
algorithms/sieve.sn
الأساسيات
- العمليات الحسابية على الأعداد الصحيحة
basics/arithmetic.sn - ثوابت مستوى الوحدة تُحسب قبل تشغيل الرئيسية
basics/constants.sn - يطبع تحية وعددا محسوبا
basics/hello.sn - أعداد صحيحة بعرض ثابت وقيم ست عشرية وتحويل صريح بـ`مثل`، تطبع بالمكتبة.تنسيق
basics/integer_types.sn
المحارف
المجاميع الاختبارية
المجموعات
- مجموعة البتات تخزن رايات كثيرة بنعم أو لا في ذاكرة قليلة
collections/bit_set.sn - طابور ذو نهايتين
collections/deque.sn - خريطة الشجرة B تبقي مفاتيحها مرتبة أيا كان ترتيب الإدراج
collections/ordered_map.sn - كومة ثنائية مرتبة بدالة مقارنة
collections/priority_queue.sn - مجموعة التجزئة تحفظ كل قيمة مرة واحدة
collections/set.sn - الشريحة (`[] ق`) نافذة على تسلسل تأخذها الدوال وترجعها
collections/slices.sn - ترتيب الأعداد والنصوص ثم البحث الثنائي في المتجه المرتب
collections/sorting.sn - إنشاء متجه والإضافة إليه والقراءة منه
collections/vector.sn - عد الكلمات بخريطة تجزئة مفاتيحها نصوص
collections/word_count.sn
الضغط
وقت الترجمة
- `فشل_وقت_الترجمة` يرفض وسيطة وقت ترجمة خاطئة أثناء الترجمة
comptime/compile_error.sn - `وقت_الترجمة` ينفذ الشيفرة أثناء الترجمة، والبرنامج يرى الناتج فقط
comptime/compile_time_values.sn - المزخرفات تغلف دالة بدالة عادية أخرى
comptime/decorators.sn - حقائق الأنواع التي يحسبها المترجم للهدف المختار
comptime/reflection.sn - معامل `وقت_الترجمة` ينشئ نسخة مخصصة من الدالة لكل قيمة
comptime/specialization.sn
التحكم في التدفق
- الشروط بـ إذا ووإلا
control_flow/conditions.sn - حلقة `لكل` بأسلوب لغة C مع `تابع_حلقة` و`اخرج_من_حلقة`
control_flow/for_loop.sn - الحلقات بـ طالما
control_flow/loops.sn - `طابق` على الأعداد والمدى والحروف والنصوص والقيم المنطقية
control_flow/match_patterns.sn
التشفير
- ChaCha20-Poly1305
crypto/encryption.sn - SHA-512 وHMAC-SHA-256 مطبوعين بالنظام الست عشري
crypto/hashes.sn - ملخص SHA-256 لمتجه بايتات مطبوعا بالنظام الست عشري
crypto/sha256.sn - Ed25519
crypto/signatures.sn
البيانات
- أنواع بمتغيرات ومطابقتها
data/enums.sn - سجلات متداخلة والوصول إلى حقولها
data/records.sn - نوع جبري تحمل بدائله سجلات تُفكك داخل `طابق`
data/shapes.sn - الصفوف تجمع قيما دون تسمية سجل، و`طابق` يفككها
data/tuples.sn - `نوع` يعطي نوعا موجودا اسما جديدا، و`مرادف` يعطي دالة اسما جديدا
data/type_aliases.sn
الترميز
البيئة
الأخطاء
- `تأكد` يوقف البرنامج برمز خروج 1 إذا كان الشرط خاطئا
errors/assertions.sn - std.error
errors/error_values.sn - المرحلة الثالثة من نظام الأخطاء (docs/en/reference/errors.md)، وهي اختيارية
errors/languages.sn - المرحلة الثانية من نظام الأخطاء (docs/en/reference/errors.md)
errors/propagation.sn - العمليات القابلة للفشل ترجع `نتيجة`، وكل حالة خطأ قيمة لها نوع
errors/results.sn
الاستدعاء الخارجي
التنسيق
صيغ البيانات
- قراءة سجلات CSV وحقولها، ومنها حقل بين علامتي تنصيص فيه فاصلة
formats/csv.sn - تحليل وثيقة جسون وقراءة حقل منها ثم كتابتها من جديد
formats/json.sn - قراءة قيم من وثيقة TOML، ومنها جدول متداخل
formats/toml.sn
الملفات
- إنشاء أدلة متداخلة وسردها واجتيازها ثم حذف الشجرة
fs/directories.sn - كتابة ملف ثم قراءته ثم حذفه
fs/files.sn
الدوال
- الدوال المجهولة تلتقط القيم المحيطة بها ويمكن إرجاعها
functions/closures.sn - دوال تمرر كقيم
functions/higher_order.sn - استدعاء دالة عبر قيمة
functions/indirect_call.sn - دالة تستدعي نفسها
functions/recursion.sn
الأنواع العامة
- دالة عامة تعمل مع أي نوع
generics/identity.sn - نوع جبري عام ودوال عامة تُستخدم مع عدة أنواع
generics/maybe.sn - سجل مكدس عام يعتمد على متجه
generics/stack.sn
المعرفات
الإدخال والإخراج
- تخزين كتابات صغيرة كثيرة ثم إفراغها دفعة واحدة
io/buffered_output.sn - المسجل يكتب في الخطأ القياسي ويهمل الرسائل الأدنى من مستواه
io/logging.sn - قراءة سطر من الإدخال القياسي
io/read_input.sn
الرياضيات
الذاكرة
الشبكات
الأعداد
الملكية
العمليات
- وسائط سطر الأوامر
process/arguments.sn - تشغيل برنامج آخر وانتظار حالة خروجه
process/child_process.sn - `اخرج` ينهي البرنامج فورا بالحالة المعطاة (هنا 3)
process/exit_code.sn
برامج كاملة
العشوائية
النصوص
- بناء النص قطعة قطعة بباني النص
strings/builder.sn - البحث في النص وتقسيمه ووصله وقصه والاستبدال فيه
strings/search_and_replace.sn - النصوص بعلامتي التنصيص "" مع التهريب، وبعلامتي «»
strings/text.sn - النص بترميز UTF-8
strings/unicode.sn