سؤال

لقد جئت من خلفية C, Fortran, Python, R, Matlab, وبعض اللثغة و قرأت بعض الأشياء على هاسكل.ما هي بعض الأفكار أنيق/أمثلة في ي أو غيرها من اللغات من APL الأسرة التي هي فريدة من نوعها و لا تنفذ في أكثر شيوعا اللغات ؟ أنا مهتم دائما في معرفة ما أنا في عداد المفقودين...

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

المحلول

ي لديه مجموعة كبيرة جدا من الشركات التي تجعل من السهل على الجن حتى مجمع البرامج دون الحاجة للبحث عن المكتبة.فقد قوية للغاية مجموعة قدرات معالجة ، وكذلك تكرارية يبني ذلك صراحة هياكل المراقبة غير ذي صلة بالنسبة لمعظم الأغراض -- لدرجة أنني يفضلون استخدام موتر الجبر إلى إعلان صريح حلقة لأنها أكثر ملاءمة.ي يعمل في مترجم ، ي النصي يمكن أن يكون مجرد بأسرع برنامج مكتوب مترجم اللغة.(عندما كنت تأخذ بها صريحة الحلقات, مترجم لا يجب أن تجميع محتويات الحلقة في كل مرة ينفذ.)

آخر متعة ميزة ي هو ضمني البرمجة.يمكنك بناء البرامج النصية دون إشارة صريحة إلى متغيرات المدخلات التي تمكنك من التعبير عن فكرة بحتة حيث ما كنت تنوي القيام به.على سبيل المثال, لا يمكن أن تحدد متوسط بمثابة 'تلخيص المصطلحات في قائمة وتقسيمها على عدد الإدخالات في قائمة' مثل ذلك:

(+/ % #)

أو أنا يمكن أن يجعل السيناريو الذي شرائح في مجموعة 2D و ترجع فقط المتوسطات الصفوف التي المتوسطات أكبر من 10:

(10&<#])(+/%#)"1

هناك الكثير من الأشياء الرائعة التي يمكنك القيام به مع ي ؛ إنه قابل للتنفيذ شكل من المفاهيم الرياضية.أفكار التعميم بسهولة لذا يمكنك الحصول على الكثير من الاستفادة من التعلم في أي جانب من جوانب كيفية عمل اللغة.

نصائح أخرى

أعتقد أن أحد الجوانب الأكثر إثارة للاهتمام من J هو أنه واحد من عدد قليل جدا من لغات غير Von-Neumann التي هي حتى عن بعد السائد.

uhm.j السائدة؟حسنا، نعم، مقارنة مع أخرى لغات غير Von-Neumann IT كذلك!لا يوجد سوى عدد قليل جدا من لغات غير فون نيومان لتبدأ، ومعظم أولئك الذين يعيشون فقط داخل بعض أطروحة الدكتوراه ولم يتم تطبيقهم فعليا وتلك التي تنفيذها عادةUserBase من 1 إذا حتى ذلك.بشكل عام، يعتبرون ناجحين إذا لم يجلس أحد المستخدمين على الأقل في نفس الطابق مثل الرجل الذي اخترعه.

مقارنة مع ذلك ، j هو السائدة.على وجه الخصوص، يعتمد J على FP جون بايتوس من محاضرة جائزة تورينج له " يمكن تحرير برمجة من نمط Von Neumann؟ " وهو AFAIK التنفيذ الوحيد للعمل عليه.(لا أعتقد أن Backus قد نفذت فعليا FP، على سبيل المثال.)

هذا ربما لا يكون فريدا كما أخرجه، لكن الميزة العلوية التي يمكنني التفكير فيها عن J ضمنية الكتابة.إنه يخلق مستوى التجريد الجميل فوق التنفيذ وإدارة الذاكرة للتركيز على البيانات التي تتم معالجتها.

لنفترض أنك بحاجة إلى تخزين رقم:

giveacodicetagpre.

ويتم ذلك.صفيف؟

giveacodicetagpre.

القيام به.أوه، ولكن انتظر، تحتاج إلى تقسيم ذلك بنسبة 3.7؟لا تهتم بالصب، فقط اذهب إليه:

giveacodicetagpre.

تتخلص من ضرورة هذه الضرورة للمشكلة والتلاعب والتخصيص نعمة صغيرة.

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