لغة كامل الموضوعية كثافة العمليات والقيم السلبية
-
06-07-2019 - |
سؤال
ونظرا لهذا مقتطف من شفرة لغة كامل الموضوعية:
let rec range a b =
if a > b then []
else a :: range (a+1) b
;;
ووREPL يقول لي انه من نوع هو:
val range : int -> int -> int list = <fun>
ويعطيها المدخلات مثل:
range 0 4;;
ويعيد القائمة:
- : int list = [0; 1; 2; 3; 4]
ولكن توفير المدخلات
range -4 2;;
ويعطي الخطأ:
Characters 0-5:
range -4 1;;
^^^^^
This expression has type int -> int -> int list but is here used with type int.
ما هو هذا تحاول أن تقول لي؟
المحلول
وعندما تكتب،
range -4 2;;
وعليك أن تتذكر أن -
هي وظيفة، وظيفة أقحم، وليس نفي أحادي.
لقيام نفي أحادي يمكنك القيام به واحد من أمرين، 1) preceede - علامة مع ~، ~ مثل -4، أو استخدام قوسين
نصائح أخرى
وأنا فقط أدركت أنني بحاجة إلى التفاف
-4 in parenthesis
وأي الدعوة:
range (-4) 0;;
ويعطي:
- : int list = [-4; -3; -2; -1; 0]
وسأترك هذا السؤال حتى طارئ أي شخص آخر يأتي عبر نفس القضية.
وفقط لتلخيص القضية وفسر ذلك -
بوصفها وظيفة وليس علامة 4
رمزية.
ويمكنك أن ترى: لغة كامل الموضوعية قضايا اللغة للحصول على مزيد من المعلومات
لا تنتمي إلى StackOverflow