রেবোল কি কার্যকরী প্রোগ্রামিংয়ের ভাষা?


9

আমি রেবোলের দিকে ছুটলাম এবং আমি এটি সম্পর্কে ভাবছিলাম।

আমি এখানে থেকে নিম্নলিখিত স্ক্রিপ্ট মধ্যে দৌড়ে :

 use [feed questions answers][
    feed: load-xml/dom http://stackoverflow.com/feeds/tag/rebol
    questions: map-each entry feed/get-by-tag <entry> [
        find/match entry/get <id> "http://stackoverflow.com/q/"
    ]

    answers: make block! length? questions

    foreach question questions [
        question: load-xml/dom join http://stackoverflow.com/feeds/question/ question
        foreach entry next question/get-by-tag <entry> [append answers entry/tree]
    ]

    insert clear feed/find-element <entry> answers
    feed/flatten
 ]

সমস্ত সংগ্রহের ম্যানিপুলেশন অপারেশন যেমন map-eachজাভাস্ক্রিপ্ট এবং সি # উভয়ের কার্যকরী ক্ষমতা স্মরণ করিয়ে দেয়।

রেবোল কি কার্যকরী ভাষা? এটি কার্যকরী প্রোগ্রামিং সমর্থন করে? এটি কি খাঁটি কার্যকরী ভাষা (পিএফএল) হিসাবে শ্রেণিবদ্ধ করা হবে?


5
এখানে REBOL এর নির্মাতার একটি উত্তর: REBOL একটি খাঁটি কার্যকরী ভাষা?
গ্রেগ হিউগিল

1
@ গ্রেগ হিউগিল এই সংস্থানটির জন্য আপনাকে ধন্যবাদ। স্ট্যাকওভারফ্লো রেবোল চ্যাট রুমে চ্যাট করার পরে আমি এই প্রশ্নটি জিজ্ঞাসা করেছি ( chat.stackoverflow.com/transcript/message/7836761#7836761 )। তারা (আমরা) বুঝতে পেরেছি যেহেতু স্ট্যাকএক্সচেঞ্জের প্রোগ্রামারস বা অন্যান্য সাইটগুলিতে এই সম্পর্কে কোনও তথ্য নেই আমার কাছে ভবিষ্যতের রেফারেন্সের জন্য এটি এখানে জিজ্ঞাসা করা উচিত। এই লিঙ্কটি দুর্দান্ত তবে এটি এখানে প্রসারিত ও ব্যাখ্যা করা যেতে পারে যাতে আরও বেশি ব্যবহারকারী যারা অভিজ্ঞ রেজোল প্রোগ্রামার না হন তারা এটি বুঝতে পারে। এই নিবন্ধটি এবং ব্যক্তিগত বিকাশের অভিজ্ঞতা থেকে উদ্ধৃতি সহ একটি উত্তর প্রশংসা করা হবে।
বেনজামিন গ্রুইনবাউম

বৈশিষ্ট্যগুলি কার্লের এক্সএমএল দৃশ্যের সবেমাত্র উন্নতি করে: আপনার এখনও অতিরিক্ত মেটাডেটা (বৈশিষ্ট্যের নাম) এবং অবিরত মান (অ্যাট্রিবিউট সামগ্রী) রয়েছে। সাবধানতার সাথে সংজ্ঞায়িত ধরণের দ্বারা সরবরাহ করা রেবোলের অন্তর্নিহিত মেটাডেটা ব্যাখ্যার উপর ন্যায্য বোঝা সরিয়ে দেয়। এক্সএমএল সহ, আপনাকে প্রথমে মানগুলি আনলক করতে হবে, তারপরে সেগুলি ডিক্রিফার করতে হবে (এক্সএমএলে সংজ্ঞায়িত তারিখটি কীভাবে I আমি আরএসএস বা অ্যাটম স্পেসটি পরীক্ষা করব? আপনি কী এক্সএমএলে সংজ্ঞাটি প্রকাশ করতে পারবেন?) এবং তারপরে সম্ভবত এগুলি বৈধ করে তোলা হবে তবেই আপনি তাদের প্রসঙ্গে মূল্যায়ন করতে পারেন। ** [এই মন্তব্য] এর প্রতিক্রিয়া হিসাবে একটি মন্তব্য হিসাবে উদ্দিষ্ট ( প্রোগ্রামারস.স্ট্যাকেক্সেঞ্জার

উত্তর:


13

" খাঁটি ফাংশনাল প্রোগ্রামিং" এর আনুষ্ঠানিক সংজ্ঞাতে গণনা মেশিন ডিজাইনের ধারণা সম্পর্কে বলা হয় যার আউটপুট খাঁটি " মেশিনের ইনপুটটির একটি ফাংশন" । আপনি যদি মেশিনে একই ইনপুট খাওয়ান তবে এটি একই আউটপুট উত্পাদন করবে। প্রতিটি ইনপুট স্পষ্টরূপে নামকরণ করা হয়েছে তাই নির্ভরতাগুলি কী তা আপনি অবিকল জানেন। একটি খাঁটি কার্যকরী প্রোগ্রামিং ভাষা এটিকে কঠোরভাবে প্রয়োগ করে।

তবুও ... বেসলাইন "রেবোল" এ আপনি এই জাতীয় জিনিস লিখতে পারেন:

foo: function [value [integer!]] [
    either now/date = 20-Feb-2013 [
        value + 1
    ] [
        value
    ]
]

এখানে আমরা এমন একটি ফাংশন দেখি যা প্রতিদিন এটির পূর্ণসংখ্যার ইনপুট দেয় তবে আজ, যেখানে আপনি মানটি আরও একটি পাবেন। এটিতে তারিখের উপর একটি অদৃশ্য নির্ভরতা অন্তর্ভুক্ত যা ফাংশনটির আর্গুমেন্ট হিসাবে আনুষ্ঠানিকভাবে নির্দিষ্ট করা হয়নি। এটি এক ধরণের জিনিস যা আমার মতো হাস্কেল মানুষ এবং সফ্টওয়্যার ফর্মালিস্টরা রক্তাক্ত হত্যার চিৎকার করে।

সুতরাং রেবোল বাক্সের বাইরে খাঁটি কার্যকর নয় । (... তবে পড়ুন ...)

ফাংশনাল প্রোগ্রামিংয়ের কম কঠোর সংজ্ঞা হ'ল যখন ফাংশন ভাষায় মান হিসাবে কাজ করতে পারে। সুতরাং আপনি একটি চলক একটি ফাংশন বরাদ্দ করতে পারেন, এবং পরে এটি ব্যবহার করতে পারেন। সেই অর্থে, আপনি জাভাস্ক্রিপ্টের পছন্দগুলি পড়তে পারেন একটি কার্যকরী ভাষা এবং দেখুন যে ডাইসাই সংজ্ঞা কিছু লোককে জাভাস্ক্রিপ্টকে একটি কার্যকরী ভাষা বলার দিকে পরিচালিত করবে। আপনি যদি সংজ্ঞার সাথে আলগা হয়ে যাচ্ছেন তবে এটি "কার্যকরী" হবে:

>> foo: does [a + 10]

>> a: 20

>> print foo
== 30

(দ্রষ্টব্য: ডিওএস হ'ল কোনও তর্ক ছাড়াই একটি ফাংশন সংজ্ঞায়িত করার জন্য সুবিধা, যার কেবলমাত্র একটি দেহ রয়েছে has)

আমি জানি না যে আমি যে লোকদের সাথে কথা বলি তার সাথে ফাংশনাল প্রোগ্রামিং কল করার জন্য আমি (বা জাভাস্ক্রিপ্ট) বিবেচনা করব। YMMV।

আপনি যদি কম্পিউটার বিজ্ঞানে কোনও সময় ব্যয় করেন আপনি ট্যুরিং টারপিটস এবং গণনাযোগ্যতা এবং এই ধরণের সমতার নীতিগুলি সম্পর্কে শিখেন যেখানে "যদি আপনি এক্স সাথে যুক্ত করতে পারেন তবে জেডটি সত্য হবে"। এবং আপনি যেমন সিটিতে একটি হ্যাস্কেল বাস্তবায়ন লিখতে পারেন এবং তারপরে কেবল হাসকল লাইব্রেরিতে ম্যাপযুক্ত সি কলগুলি ব্যবহার করে নিজেকে সীমাবদ্ধ রাখতে পারেন, আপনি দাবি করতে পারেন যে আপনি "ফাংশনাল প্রোগ্রামিং" করছেন এবং প্রযুক্তিগতভাবে সঠিক হয়ে উঠছেন।

সুতরাং আপনি যদি বলতে চেয়েছিলেন যে রেবলকে কার্যকরী প্রোগ্রামিং শৈলীর দিকে বাঁকানো যেতে পারে তবে আপনি হতাশবাদী হতে পারেন এবং বলতে পারেন যে "আপনি যখন সি ভাষা করছেন তখন আপনি যে ভাষায় এমন একটি সীমাবদ্ধ উপসেট ব্যবহার করছেন তা বলার চেয়ে ভাল কিছু নয় ' প্রক্সি দ্বারা হাসেলকে পুনরায় ব্যবহার করছেন " । রেবলের আস্তিনের কৌশলটি আপনি সহজেই একটি "ডায়ালাইকিং" উপমা থেকে অন্যটিতে চলে যেতে চলেছেন। একটি কার্যকরী বলে মনে হয় এমন একটি ছোট্ট ডোমেন-নির্দিষ্ট-ভাষা লেখা এত সহজ এবং স্বাভাবিক যে আপনি নিজের ভাষাটিকে যৌথভাবে বাইরে ঘুরিয়ে দেওয়ার মতো মনে করেন না। ক্রিয়ামূলক চরিত্রযুক্ত ডোমেন নির্দিষ্ট ভাষাগুলি তৈরির ক্ষমতা রেবলের লেবেলটিকে "প্যারাডিজম নিরপেক্ষ" হিসাবে নিয়ে যায়

অনেকে রেবোলকে এর সর্বাধিক প্রচলিত উপভাষার (ডিও উপভাষা) মিশ্রিত করে এবং "এটিই রেবোল হ'ল" বলে মনে করেন। তবে রেবলের "সারাংশ" এক্সএমএলের মতো, এটি একটি ডেটা এক্সচেঞ্জের ফর্ম্যাট যা কাকতালীয়ভাবে (ঠিক আছে, কাকতালীয়ভাবে নয়) এর হাইপার-অপ্টিমাইজড কোড রয়েছে যা কিছু নির্দিষ্ট উপায়ে বক্সের বাইরে প্রক্রিয়াজাতকরণের উপর দৃষ্টি নিবদ্ধ করে। এক্সএমএল থেকে প্যান্টগুলি কীভাবে প্রহার করে সে সম্পর্কে একটি ভাল ব্যাকগ্রাউন্ড পড়ার জন্য, দেখুন এক্সিএমএল অ্যামিগাসের (এবং এখন রেবোল) খ্যাতির কার্ল স্যাসেনারথের প্রারম্ভ থেকে ত্রুটিযুক্ত ছিলেন


1
এটি দুর্দান্ত উত্তর তবে আমি মনে করি "শুরু থেকেই ত্রুটিযুক্ত XML" নিবন্ধটি বেশ খারাপ। প্রথমত, তিনি দুর্বল এক্সএমএল ব্যবহার করেন (বাসা বাঁধার সাথে তিনি যা কিছু উপস্থাপন করেন সেগুলি বৈশিষ্ট্যের সাথে উপস্থাপন করা যেতে পারে)। দ্বিতীয়ত, ভাষা করছে গঠন মত একটি বৃক্ষ, যা XML বর্ণনার অনুরূপ দ্বারা প্রতিনিধিত্ব। যখন আপনি একটি বাক্যকে বিশ্লেষণ করেন একটি পার্স গাছ পাবেন, এক্সএমএল এর সাথে তুলনা করা মোটেও যথাযথ নয় যা স্ট্রিমের সাথে ব্যাকরণ সম্পর্কিত তথ্য যা ডোমেন নির্দিষ্ট specific উত্তরের জন্য ধন্যবাদ :)
বেনজামিন গ্রুইনবাউম

2
আমি একজন রেবোল এন00 বি এবং যেমনটি আপনি বলেছেন, আমিও এখনই ভাবছি যে রেবোল হ'ল ডিও উপভাষাটি কী। আশা করি এই মানসিকতা থেকে বেরিয়ে আসবে। :-)
কে।

1
@ বেনজামিন গ্রুয়েনবাউম যদি আমি কার্লের ওয়েবসাইট সম্পাদনা করতে পারি তবে বিশ্বাস করুন, আমি করতাম। :-)
হোস্টাইলফোর্ক বলেছেন যে

@ বেঞ্জামিন গ্রুয়েনবাউম তবে সমস্ত ভাষা এই গাছের কাঠামোকে অবাধে হেরফের করতে পারে না। রেবোল সে ক্ষেত্রে খুব লস্প-ওয়াই।
ইজকাটা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.