وسم الحلول


تُستخدم وسوم المحلّل لتحديد كيفية التوصل إلى الحل.

يمكن بعد ذلك استخدام هذه الوسوم من أجل:

  • ربط الحل بالأساليب
  • ربط الحل بالمفاهيم
  • البحث عن الحلول التي تحمل وسومًا معيّنة

الصيغة

الوسم عبارة عن سلسلة نصية بالصيغة التالية: <category>:<thing>.

ندعم أربع فئات مختلفة، مرتّبة من الأعلى إلى الأدنى مستوى:

الفئة الوصف مستوى التحديد الأمثلة
paradigm نمط برمجي عالي المستوى جدًا، ولا يخصّ مسارًا بعينه imperative, functional
technique تقنية مستخدمة عالي المستوى، ومعظمها لا يخصّ مسارًا بعينه recursion, immutability
construct تركيب لغوي كثير منها لا يخصّ مسارًا بعينه bitwise-and, for-loop
uses استخدام خاص بلغة بعينها، مثل الأنواع أو الطرق منخفض المستوى، ويخصّ مسارًا بعينه DateTime.add_seconds, IEnumerable

بعض الأمثلة على الوسوم:

  • paradigm:functional
  • technique:recursion
  • construct:bitwise-and
  • uses:DateTime.add_seconds

الوسوم الشائعة الاستخدام

بينما الحرية للمسارات في وسم الحلول كما تراه مناسبًا، نوصي بمحاولة استخدام القائمة أدناه للوسوم الشائعة الاستخدام كلما أمكن. استخدام مجموعة وسوم موحّدة سيتيح لنا القيام ببعض الأشياء الرائعة، مثل الربط بين الحلول عبر المسارات.

النمط

الوسم الوصف
paradigm:array يستخدم البرمجة بالمصفوفات.
paradigm:declarative يستخدم البرمجة التصريحية.
paradigm:functional يستخدم البرمجة الوظيفية.
paradigm:generic يستخدم البرمجة العامة.
paradigm:imperative يستخدم البرمجة الأمرية.
paradigm:logic يستخدم البرمجة المنطقية.
paradigm:meta يستخدم البرمجة الفوقية.
paradigm:object-oriented يستخدم البرمجة كائنية التوجه.
paradigm:procedural يستخدم البرمجة الإجرائية.
paradigm:reflective يستخدم البرمجة الانعكاسية.
paradigm:stack-oriented يستخدم البرمجة الموجهة بالمكدّس.

التقنيات

الوسم الوصف
technique:bit-manipulation يتلاعب بالبتات، عادةً عبر عوامل على مستوى البت (مثل AND أو XOR أو الإزاحة لليسار)
technique:bit-shifting يزيح البتات داخل عدد
technique:boolean-logic ينفّذ منطقًا قائمًا على القيم المنطقية (AND، OR، NOT)
technique:composition يستخدم التركيب
technique:concurrency يشغّل الكود بالتزامن
technique:enumeration يُجري تعدادًا على القيم
technique:error-handling يتعامل مع الأخطاء
technique:exceptions يلتقط الاستثناءات أو يطرحها
technique:function-composition يستخدم تركيب الدوال
technique:generator يستخدم مولّدًا
technique:higher-order-functions يستخدم دوال الرتبة الأعلى
technique:immutability يستخدم الثبات
technique:immutable-collection يستخدم مجموعة محتواها غير قابل للتغيير
technique:inheritance يستخدم الوراثة
technique:laziness ينتج القيم بتأخير، فقط عند الحاجة
technique:locks يستخدم الأقفال للحصول على وصول حصري إلى الموارد
technique:looping يستخدم الحلقات
technique:math يستخدم الرياضيات
technique:memory-management يدير الذاكرة
technique:ordering يرتّب البيانات
technique:parallelism يشغّل الكود على التوازي
technique:parser يحلّل البيانات
technique:pointers يستخدم المؤشرات
technique:randomness يستخدم العشوائية
technique:recursion يستخدم الاستدعاء الذاتي
technique:regular-expression يستخدم التعبيرات النمطية
technique:short-circuiting يستخدم التقييم القصير لمنع التقييم غير الضروري
technique:sorted-collection يستخدم مجموعة عناصرها مرتّبة دائمًا
technique:sorting يرتّب البيانات
technique:tail-call-optimization يستخدم تحسين الاستدعاء الذيلّي لاستدعاء ذاتي فعّال
technique:type-conversion يحوّل القيم من نوع إلى نوع آخر
technique:unsafe يستخدم كودًا غير آمن (مثل الحساب على المؤشرات)

التراكيب

الوسم الوصف
construct:abstract-class يعرّف صنفًا مجرّدًا
construct:abstract-method يعرّف طريقة مجرّدة
construct:add-assignment يدمج الجمع مع الإسناد
construct:add يستخدم الجمع
construct:array يستخدم مصفوفة أو يعرّفها
construct:assignment يُسند قيمة إلى متغير أو اسم، أو يربطها به
construct:async-await يستخدم async/await
construct:attribute يضيف بيانات وصفية إلى عضو
construct:auto-implemented-property يعرّف خاصية مُنفّذة تلقائيًا
construct:big-integer يستخدم عددًا صحيحًا كبيرًا
construct:binary-number يعرّف عددًا بالترميز الثنائي
construct:bit-array يستخدم مصفوفة بتات أو يعرّفها
construct:bitwise-and-assignment يدمج عملية AND على مستوى البت مع الإسناد
construct:bitwise-and ينفّذ عملية AND على مستوى البت
construct:bitwise-left-shift-assignment يدمج الإزاحة لليسار على مستوى البت مع الإسناد
construct:bitwise-left-shift ينفّذ إزاحة لليسار على مستوى البت
construct:bitwise-not ينفّذ عملية NOT على مستوى البت
construct:bitwise-or-assignment يدمج عملية OR على مستوى البت مع الإسناد
construct:bitwise-or ينفّذ عملية OR على مستوى البت
construct:bitwise-right-shift-assignment يدمج الإزاحة لليمين على مستوى البت مع الإسناد
construct:bitwise-right-shift ينفّذ إزاحة لليمين على مستوى البت
construct:bitwise-xor-assignment يدمج عملية XOR على مستوى البت مع الإسناد
construct:bitwise-xor ينفّذ عملية XOR على مستوى البت
construct:block يعرّف كتلة تحتوي قائمة عبارات
construct:boolean يعرّف قيمة منطقية أو يستخدمها
construct:boxing يستخدم التغليف
construct:break يخرج من الحلقة
construct:byte يستخدم عددًا صحيحًا غير موقع بطول 8 بتات
construct:catch يلتقط استثناءً
construct:char يستخدم محرفًا
construct:checked-arithmetic يستخدم حسابًا مُتحقَّقًا منه (يحمي من تجاوز الحدود)
construct:class يعرّف صنفًا
construct:collection-initializer يضبط قيم مجموعة عبر مُهيّئ
construct:command يعرّف أمرًا
construct:comment يعرّف تعليقًا
construct:comparison-chaining يسلسل نداءات المقارنة
construct:comparison يقارن قيمتين بترتيبهما النسبي
construct:complex-number يستخدم عددًا مركّبًا
construct:computed-string يعرّف سلسلة نصية محسوبة
construct:concatenation يدمج القيم
construct:conditional-access يصل إلى طريقة بشكل شرطي
construct:conditional-operator يستخدم عاملًا شرطيًّا ثلاثيًّا
construct:conditional ينفّذ الكود بشكل شرطي
construct:constant يعرّف قيمة ثابتة (غير قابلة للتغيير)
construct:constructor يعرّف مُنشئًا
construct:continue ينتقل إلى التكرار التالي في الحلقة
construct:conversion-operator يعرّف عامل تحويل
construct:copy ينسخ قيمة
construct:coroutine يعرّف روتينًا مشتركًا أو يستخدمه
construct:custom-attribute يعرّف سمة مخصّصة
construct:date-time يستخدم قيمة تمثّل اجتماع التاريخ والوقت معًا
construct:date يستخدم قيمة تمثّل تاريخًا (بدون وقت)
construct:decimal يستخدم عددًا عشريًّا بالفاصلة العائمة بطول 128 بت
construct:decrement ينقص قيمة بمقدار واحد
construct:default-interface-implementation يعرّف تنفيذًا افتراضيًّا داخل واجهة
construct:default يعرّف قيمة افتراضية (مثلًا لمعامل)
construct:destructuring يفكّك قيمة إلى أجزائها
construct:dictionary-comprehension ينشئ قاموسًا عبر أسلوب الاستيعاب
construct:dictionary يستخدم قاموسًا أو خريطة، أو يعرّفهما
construct:discard يستخدم قيمة التجاهل الخاصة
construct:divide-assignment يدمج القسمة مع الإسناد
construct:divide يستخدم القسمة
construct:do-while-loop يستخدم حلقة do-while
construct:double يستخدم عددًا بالفاصلة العائمة بطول 64 بت
construct:else يعرّف فرع else
construct:enum يعرّف تعدادًا أو يستخدمه (تعداد القيم)
construct:equality يقارن تساوي قيمتين
construct:error يعرّف خطأً أو يستخدمه
construct:event يعرّف أحداثًا أو يستخدمها
construct:exception يعرّف استثناءات أو يستخدمها
construct:explicit-conversion يحوّل من نوع إلى آخر بشكل صريح
construct:explicit-import يستورد وظائف محدّدة فقط
construct:exponentiation يحسب رفع قيمة إلى أس
construct:expression-bodied-member يعرّف عضوًا بتعبير
construct:extension-method يعرّف طريقة امتدادية
construct:field-access يصل إلى حقل
construct:field يعرّف حقلًا
construct:finally يستخدم finally لضمان تشغيل كتلة كود محدّدة دائمًا
construct:flags-enum يعرّف تعداد أعلام أو يستخدمه
construct:float يستخدم عددًا بالفاصلة العائمة بطول 32 بت
construct:floating-point-number يستخدم عددًا بالفاصلة العائمة
construct:for-loop يستخدم حلقة for
construct:foreach يستخدم حلقة foreach
construct:function-overloading يستخدم التحميل الزائد للدوال
construct:function يعرّف دالة
construct:generator يعرّف دالة مولّد أو طريقة مولّد
construct:generic-function يعرّف دالة مُعاملة بنوع واحد أو أكثر
construct:generic-method يعرّف طريقة مُعاملة بنوع واحد أو أكثر
construct:generic-type يعرّف نوعًا مُعاملًا بنوع واحد أو أكثر
construct:getter يعرّف دالة جلب
construct:global-function يعرّف دالة متاحة على المستوى العام
construct:global-variable يعرّف متغيرًا متاحًا على المستوى العام
construct:header يعرّف ملف ترويسة
construct:hexadecimal-number يعرّف عددًا بالترميز السادس عشري
construct:if يستخدم جملة شرطية if
construct:implicit-conversion يحوّل من نوع إلى آخر بشكل ضمني
construct:implicit-loop يكرّر على مجموعة قيم بشكل ضمني
construct:implicit-return يُرجع قيمة بشكل ضمني
construct:import يستورد وظائف منفّذة في مكان آخر (مثلًا من نطاق أسماء أو وحدة)
construct:increment يزيد قيمة بمقدار واحد
construct:index-operator يعرّف عاملًا لفهرسة كائن
construct:indexer يعرّف مُفهرِسًا أو يستخدمه
construct:indexing يصل إلى قيمة عبر الفهرس
construct:inequality يقارن عدم تساوي قيمتين
construct:infix-operator يعرّف عاملًا بينيًّا
construct:initialization يهيّئ كائنًا بعد إنشائه
construct:initializer-list يهيّئ قيم حقول كائن
construct:initializer يهيّئ كائنًا
construct:instance ينشئ نسخة من نوع أو يستخدمها
construct:instantiation ينشئ نسخة من نوع
construct:int يستخدم عددًا صحيحًا موقعًا بطول 32 بت
construct:integral-number يستخدم عددًا صحيحًا
construct:interface يعرّف واجهة
construct:invocation يستدعي طريقة أو دالة
construct:iterator يعرّف دالة أو طريقة يمكن التكرار عليها
construct:jagged-array يستخدم مصفوفة مسنّنة (مصفوفة من مصفوفات)
construct:lambda يعرّف تعبير لامدا (ويُعرف أيضًا باسم "دالة مجهولة")
construct:linked-list يستخدم قائمة مترابطة
construct:linq يستخدم LINQ
construct:list-comprehension يبني قائمة عبر أسلوب الاستيعاب
construct:list يستخدم قائمة
construct:local-function يعرّف دالة محلية
construct:local-variable يعرّف متغيرًا محليًّا
construct:lock يستخدم قفلًا
construct:logical-and ينفّذ عملية AND منطقية
construct:logical-not ينفّذ عملية NOT منطقية
construct:logical-or ينفّذ عملية OR منطقية
construct:long يستخدم عددًا صحيحًا موقعًا بطول 64 بت
construct:loop يعرّف حلقة
construct:macro يعرّف ماكرو
construct:membership-test يختبر انتماء قيمة إلى قيمة أخرى
construct:metatable يعرّف جدولًا فوقيًّا
construct:method-chaining يسلسل عدة نداءات طرق
construct:method-overloading يستخدم التحميل الزائد للطرق
construct:method-override يعرّف طريقة متجاوَزة
construct:method يعرّف طريقة
construct:module يعرّف وحدة (تجميع للكود)
construct:modulo-assignment يدمج باقي القسمة مع الإسناد
construct:modulo يستخدم باقي القسمة
construct:multi-dimensional-array يستخدم مصفوفة متعددة الأبعاد
construct:multiline-string يعرّف سلسلة نصية متعددة الأسطر
construct:multiple-assignment يُسند قيمًا متعددة دفعة واحدة
construct:multiple-dispatch يستخدم الإرسال المتعدد
construct:multiply-assignment يدمج الضرب مع الإسناد
construct:multiply يستخدم الضرب
construct:named-argument يمرّر وسيطًا بالاسم
construct:namespace يعرّف نطاق أسماء (تجميع للكود)
construct:nested-function يعرّف دالة متداخلة
construct:nested-type يعرّف نوعًا متداخلًا
construct:nesting يستخدم التداخل
construct:nint يستخدم عددًا صحيحًا موقعًا خاصًّا بالمنصّة (32 أو 64 بت)
construct:nuint يستخدم عددًا صحيحًا غير موقع خاصًّا بالمنصّة (32 أو 64 بت)
construct:null يستخدم null/nil للتعبير عن غياب قيمة
construct:nullability يتعامل مع قيم null/nil
construct:number يستخدم عددًا (موقعًا أو غير موقع)
construct:object-initializer يضبط قيم كائن عبر مُهيّئ
construct:octal-number يعرّف عددًا بالترميز الثماني
construct:operator-overloading يستخدم التحميل الزائد للعوامل
construct:option يستخدم نوع خيار
construct:optional-parameter يعرّف معاملًا اختياريًّا
construct:overflow يستخدم تجاوز السعة الحسابية
construct:parameter يعرّف معاملًا
construct:parenthesized-expression يحيط تعبيرًا بالأقواس الهلالية
construct:pattern-matching يستخدم مطابقة الأنماط
construct:pattern يعرّف نمطًا يُستخدم في مطابقة الأنماط
construct:pipe-backward يستخدم أنبوبًا معاكسًا
construct:pipe-forward يستخدم أنبوبًا أماميًّا
construct:pipeline يعرّف خط أنابيب
construct:point-free يعرّف دوال دون الوسائط التي تعمل عليها
construct:pointer يستخدم مؤشرًا
construct:postfix-decrement ينقص قيمة باستخدام الترميز اللاحق
construct:postfix-increment يزيد قيمة باستخدام الترميز اللاحق
construct:prefix-decrement ينقص قيمة باستخدام الترميز السابق
construct:prefix-increment يزيد قيمة باستخدام الترميز السابق
construct:print يطبع قيمة على وحدة التحكم
construct:property يعرّف خاصية (جلب/ضبط)
construct:query-expression يستعلم عن البيانات عبر تعبير
construct:queue يستخدم طابورًا
construct:range يعرّف نطاقًا
construct:read-only يعرّف قيمة للقراءة فقط
construct:record يعرّف سجلًا
construct:regular-expression يعرّف تعبيرًا نمطيًّا أو يستخدمه
construct:result يستخدم نوع نتيجة
construct:return-type يعرّف نوع إرجاع دالة أو طريقة
construct:return يعود من دالة أو طريقة
construct:sbyte يستخدم عددًا صحيحًا موقعًا بطول 8 بتات
construct:scientific-notation-number يعرّف عددًا بالترميز العلمي
construct:set-comprehension ينشئ مجموعة عبر أسلوب الاستيعاب
construct:set يستخدم مجموعة
construct:setter يعرّف دالة ضبط
construct:short يستخدم عددًا صحيحًا موقعًا بطول 16 بت
construct:slice يستخدم شريحة
construct:stack يستخدم مكدّسًا
construct:static-field يعرّف حقلًا ساكنًا
construct:static-method يعرّف طريقة ساكنة
construct:string-formatting يبني سلسلة نصية عبر سلسلة تنسيق
construct:string-interpolation يعرّف سلسلة نصية مُدمَجة
construct:string يعرّف سلسلة نصية
construct:struct يعرّف بنية
construct:subtract-assignment يدمج الطرح مع الإسناد
construct:subtract يستخدم الطرح
construct:sum-type يعرّف نوع مجموع
construct:switch يستخدم switch
construct:table يعرّف جدولًا
construct:template-alias يعرّف اسمًا مستعارًا لقالب
construct:template-parameter يعرّف معامل قالب
construct:template يعرّف قالبًا
construct:throw يطرح استثناءً
construct:time يستخدم كائنًا يمثّل الوقت
construct:try يتعامل مع استثناء بشكل صريح
construct:tuple يستخدم صفًا
construct:type-alias يعرّف اسمًا مستعارًا لنوع
construct:type-conversion يحوّل قيمة إلى نوع آخر (بتحويل قسري)
construct:type-extension يمدّد نوعًا بوظائف جديدة
construct:type-inference يستنتج نوع قيمة أو دالة تلقائيًّا
construct:type-test يختبر ما إذا كانت قيمة من نوع محدّد
construct:uint يستخدم عددًا صحيحًا غير موقع بطول 32 بت
construct:ulong يستخدم عددًا صحيحًا غير موقع بطول 64 بت
construct:unary-minus يستخدم سالبًا أحاديًّا
construct:unary-plus يستخدم موجبًا أحاديًّا
construct:underscored-number يستخدم عددًا بشرطات سفلية كفواصل بين أرقامه
construct:union-type يعرّف نوع اتحاد
construct:user-defined-exception يعرّف استثناءً مخصّصًا يعرّفه المستخدم
construct:ushort يستخدم عددًا صحيحًا غير موقع بطول 16 بت
construct:using-directive يستخدم كودًا من ملف آخر
construct:using-statement يُسند قيمة ويتخلّص منها عبر جملة using
construct:varargs يعرّف معاملًا يدعم تمرير صفر من القيم أو أكثر
construct:variable يعرّف متغيرًا
construct:vector يستخدم متجهًا
construct:verbatim-string يستخدم سلسلة نصية حرفية (بدون متتاليات هروب)
construct:virtual-method يعرّف طريقة ظاهرية
construct:visibility-modifiers يحدّد مدى ظهور عنصر (مثل طريقة أو صنف)
construct:while-loop يستخدم حلقة while
construct:yield يُسلّم قيمة في حلقة بشكل مؤجّل

الاستخدامات

بما أن هذه الفئة خاصة بلغة بعينها، لا توجد وسوم شائعة الاستخدام هنا.