تشمل الأعداد في Clojure ما يلي:
-6 و0 و1 و25 و976 و500000.-2.4 و0.1 و3.14 و16.984025 و1024.0.من الأنواع الرقمية الشائعة int وfloat. النوع int عدد صحيح بطول 32 بت، والنوع float عدد عشري بطول 64 بت.
تُجرى العمليات الحسابية باستخدام عوامل الحساب القياسية. ويمكن مقارنة الأعداد باستخدام عوامل المقارنة الرقمية القياسية (> و< و<= و>=)، وعامل التساوي (=)، وعامل عدم التساوي (not=).
في هذا التمرين عليك تنفيذ المنطق بشكل شرطي. ومن الأساليب الشائعة لفعل ذلك في Clojure استخدام cond:
(cond (= x 5) "Expression to evaluate when x equals 5"
(> x 7) "Expression to evaluate when x is greater than 7"
:else "Expression to evaluate in all other cases")
قد يكون عامل == أفضل من = في بعض الحالات التي تحتاج فيها إلى مقارنة الأعداد بغض النظر عن نوعها الدقيق. على سبيل المثال،
(== 5.0 5) ;; true as both numbers are equal when type is ignored
(= 5.0 5) ;; false as the types of numbers are also taken into account here i.e. float is different from int
ويتناول دليل Clojure حول التساوي، وتحديدًا القسم الخاص بـالأعداد، مزيدًا من التفاصيل.
في هذا التمرين ستكتب كودًا لتحليل إنتاج خط تجميع في مصنع سيارات. يمكن أن تتراوح سرعة خط التجميع من 0 (متوقف) إلى 10 (الحد الأقصى).
عند أدنى سرعة (1)، ينتج خط التجميع 221 سيارة في الساعة. ويزداد الإنتاج خطيًا مع زيادة السرعة. لذا عند ضبط السرعة على 4، ينبغي أن ينتج 4 * 221 = 884 سيارة في الساعة. غير أن السرعات الأعلى تزيد احتمال إنتاج سيارات معيبة، وهو ما يستوجب التخلص منها بعد ذلك. يوضح الجدول التالي كيف تؤثر السرعة في معدل النجاح:
0: معدل نجاح 0%.1 إلى 4: معدل نجاح 100%.5 إلى 8: معدل نجاح 90%.9: معدل نجاح 80%.10: معدل نجاح 77%.لديك مهمتان.
نفّذ الدالة production-rate لحساب معدل إنتاج خط التجميع في الساعة، مع مراعاة معدل نجاحه:
(production-rate 6)
;;=> 1193.4
لاحظ أن القيمة المُرجَعة من النوع double.
نفّذ الدالة working-items لحساب عدد السيارات الصالحة المنتَجة في الدقيقة:
(working-items 6)
;;=> 19
لاحظ أن القيمة المُرجَعة من النوع int.
سجّل في Exercism لتتعلّم وتتقن Clojure عبر 12 مفهومًا105 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.