স্কিম থেকে আমার কী শিখতে হবে?


10

আমি ভাবছিলাম যে স্কিম থেকে আমি কী অনন্য বৈশিষ্ট্যগুলি শিখতে পারি যা আমাকে আরও ভাল প্রোগ্রামার হতে সহায়তা করবে?

মূলধারার ভাষাগুলিতে আমার অনেক অভিজ্ঞতা আছে এবং আমি আমার দিগন্তগুলি প্রসারিত করতে এবং অন্যান্য ভাষাগুলি থেকে অনুপস্থিত কার্যকরী দিকগুলি সম্পর্কে জানতে চাইছি। আমি জাভাস্ক্রিপ্ট থেকে ক্লোজার, সি # এর ল্যাম্বডা এক্সপ্রেশন সম্পর্কে পরিচিত, এবং আমি ভাবছিলাম যে আমি অন্যান্য ভাষাগুলির ঘাটতিতে কীসের দিকে মনোযোগ দিতে পারি? লিসপ সিনট্যাক্সটি বাদ দিয়ে আমি এখনও পর্যন্ত যা দেখেছি তার মতো আমি অন্যান্য ভাষায় ইতিমধ্যে মুখোমুখি হয়েছি feel

স্কিম / লিস্পের অনন্য কী যা আমাকে নতুন কিছু শিখিয়ে দেবে?


3
লিস্প আপনার কাছে গভীর জ্ঞানানুভূতির অভিজ্ঞতা অর্জনের জন্য উপযুক্ত, যখন আপনি শেষ পর্যন্ত এটি পাবেন; সেই অভিজ্ঞতা আপনাকে আপনার বাকি দিনগুলির জন্য আরও ভাল একটি প্রোগ্রামার করে তুলবে, এমনকি যদি আপনি বাস্তবে কখনও লিস্পকে বেশি ব্যবহার না করেন। - এরিক রেমন্ড
রবার্ট হার্ভে


1
@Robert Harvery: এছাড়াও: xkcd.com/224
Poindexter

2
বর্তমান আকারে এই প্রশ্নটি বিশেষভাবে গঠনমূলক নয়। আপনি যদি আরও নির্দিষ্ট তথ্যের জন্য এটি পুনরায় কাজ করতে পারেন তবে এটি কার্যকর হতে পারে।
ক্রিসএফ

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

উত্তর:


7

সম্ভবত লিস্পের সবচেয়ে গুরুত্বপূর্ণ সংজ্ঞাযুক্ত বৈশিষ্ট্য হ'ল "ডেটা হিসাবে কোড"।  অন্য কোনও ভাষার সাথে আপনি সেই অভিজ্ঞতাটি পাবেন না। সি # তে, নিকটতম অ্যানালগ হল অভিব্যক্তি গাছ।

এটি সেই গুণটি যা লিস্পকে পার্স করার জন্য একটি দুর্দান্ত ভাষা করে তোলে। এটি সেই গুণটি যা পল গ্রাহামকে লিস্প সম্পর্কে বলতে অনুপ্রাণিত করেছিল: "লিস্প সম্পর্কে অস্বাভাবিক বিষয় - আসলে, লিস্পের সংজ্ঞা দেওয়ার গুণটি - এটি নিজেই লেখা যেতে পারে।" যদিও স্ব-হোস্টিং সংকলকগুলি নতুন কিছু নয়, লিস্পের মতো কোনও ভাষা এটিকে বেশ মার্জিতভাবে করে না।

ধাতব প্রোগ্রামিং (এমন কোনও কিছুতে লিস্পও ছাড়িয়ে যায়) এছাড়াও শেখার উপযুক্ত বিষয়।

পল গ্রাহাম দ্বারা গড় পিটুন
http://www.paulgraham.com/avg.html


1
আমি মনে করি যে কারণটি আমার কখনই ছিল না "আহা!" ইএসআর আমাকে প্রতিশ্রুতি দেওয়ার মুহুর্তটি হ'ল আমি প্রলোগে ইতিমধ্যে "ডেটা হিসাবে কোড" প্রকাশ পেয়েছি।
ফ্রাঙ্ক শায়ারার

1
হাস্কেলের কি "ডেটা হিসাবে কোড" বৈশিষ্ট্য রয়েছে? বা সৌন্দর্য গতিশীল টাইপিং এবং প্রতিবিম্ব উপর খুব বেশি নির্ভর করে?
জোয় অ্যাডামস

1
@ জো: আমি মনে করি যে টেম্পলেট হাস্কেল বিদ্যমান তার অর্থ হাস্কেলের "ডেটা হিসাবে কোড" বৈশিষ্ট্য অভাব রয়েছে।
j_random_hacker

4

হ্যাঁ, এটি আপনাকে পুনরাবৃত্ত ফ্যাশনে ভাবতে সহায়তা করবে। আমি কেবল একটি প্রোগ্রামিং ভাষার ক্লাসে এক মাস বা তার জন্য এটি (স্কিম) অধ্যয়ন করেছি এবং এটি আমাকে কীভাবে চিন্তা করে এবং প্রোগ্রামিংয়ের সমস্যাগুলি সমাধান করতে উত্সাহিত করেছিল helped

অন্যান্য প্রোগ্রামিং দৃষ্টান্ত চেষ্টা করা সর্বদা মূল্যবান; তারপরে আপনি নতুন ধারণা সহ ওও বিশ্বে রিফ্রেশ ফিরে আসেন।

বাক্য গঠন নয়, যুক্তি, এটি দুর্দান্ত মস্তিষ্কের অনুশীলন। পুনরাবৃত্তি এবং তালিকার আকর্ষণীয় ব্যবহার থেকে শুরু করুন, আইএমএইচও তেমন আর কিছু নেই, তবে এটির পক্ষে এটি ভাল worth


স্কিম অনন্য নয়। পুনরাবৃত্তি অনুশীলনের জন্য যে কোনও (ভাল, প্রায় কোনও) কার্যকরী ভাষা ভাল।

আমি সম্মত, তবে ওপি 'মূলধারার' ভাষার তুলনায় স্কিমের প্রতি আগ্রহী বলে মনে হচ্ছে ....
জাভেভিয়ার নোডেট

1

ধারাবাহিকতা :

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

এবং তারপরে ম্যাককার্তির দ্ব্যর্থহীন অপারেটরটি প্রয়োগ করার চেষ্টা করুন :

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


1

আমি নিম্নলিখিত সম্পর্কে চিন্তা করতে পারি:

  • রিয়েল ম্যাক্রোস (কোড উত্পন্ন করতে ভাষার সম্পূর্ণ শক্তি ব্যবহার করে)
  • হোমোকোনসিটিটি (কোড হিসাবে ডেটা, ডেটা হিসাবে কোড)
  • অলস মূল্যায়ন
  • Continuations

আমি আরও মনে করি যে লিস্প ভাষাগুলি ডোমেন নির্দিষ্ট ভাষা (ডিএসএল) সংজ্ঞায়িত করার জন্য দুর্দান্ত হওয়া উচিত। এটি এমন কিছু যা আপনি ইতিমধ্যে এটি সম্পর্কে জানতে না পারলে এটি পড়তে চাইবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.