سؤال

انا استخدم GNU APL 1.1 (svn 4460) على Linux 2.6.32 ولدي بعض المشاكل مع تعريفات الوظائف.

يعمل هذا المقتطف كما هو متوقع:

∇R←ODD N
R←2|N
∇

(ODD L)/L←⍳10

لكن عندما أحاول هذا

{2|⍵} 5

أو هذا

ODD←{2|⍵}

أحصل على خطأ في بناء الجملة. نفس المقتطفات تعمل بشكل جيد هنا.

أنا مبتدئ في APL. هل يمكن لأي شخص أن يشرح لي ما الذي يسبب خطأ بناء الجملة هذا؟

هل كانت مفيدة؟

المحلول

أنت المثال الأول يستخدم تدوين APL التقليدي "del" لتحديد وظيفة ما. يستخدم المثالان الثانيان التعريف المباشر (المعروف عادةً باسم DFNS - DEE -FUNS واضحة) وهو امتداد بواسطة Dyalog APL ، ومن الواضح أنه لا يعمل في المترجم المترجم الذي تستخدمه. سهولة تحديد الوظائف بهذه الطريقة هي ميزة كبيرة.

نصائح أخرى

لا يتم دعم بناء جملة DFNS (شظية الوظيفة في الأقواس المجعد) من قبل جميع APLs. إذا لم يكن مدعومًا ، توقع خطأ في بناء الجملة أو خطأ في NONCE.

على حد علمي ، فقط Dyalog APL و NGN APL (انظر http://ngn.github.io/apl/web/) ادعمه.

كان لـ Sharp APL ميزة تعريف مباشر ولكن بناء الجملة كان مختلفًا إلى حد ما.

لا يدعم NGN APL تعريف الوظيفة القديمة ، فقط DFNs.

GNU APL لديها الآن دعم لمثل هذه DFNs. يمكنك تجربته عن طريق تجميعه من مستودع التخريب أو انتظار الإصدار 1.3.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top