💫 یک Quine برنامهایه که وقتی اجرا بشه، دقیقاً سورسکد خودش رو خروجی میده، بدون اینکه به فایلهای خارجی دسترسی داشته باشه.
🔤نوشتن Quine توی زبانهای عادی مثل Python یا ++C یه جور بازی ذهنیه و باید با قواعد زبان بازی کنی. Quineها توی ریاضیات نظری هم مهمن، چون به قضیههای بنیادی مثل قضیه ناتمامیت گودل ربط دارن.
🔙 به طور کلی Quine یعنی کدی که آیینهی خودش باشه.
کواین یعنی برنامهای که کد خودش رو به عنوان خروجی تولید میکند به صورت رسمیتر، کواین به برنامه غیر خالیای گفته میشود که هیچ ورودی نداشته و تنها خروجی تولید شده توسط آن، کد خود برنامه باشد.
این اسم اولین بار توسط دانشمند آمریکایی داگلاس هوفشتاتر با الهام از نام یکی از تاثیرگذارترین فیلسوفهای قرن بیستم یعنی Willard Van Orman Quine به کار برده شد. دلیل این انتخاب، کارهای ارزشمند این فیلسوف برای "تلاش سیستماتیک در درک علم با استفاده از منابع علمی"(1) بوده است.
جالب بودن کواینها نه در مطالعه راجع به آنها و نه حتی بررسی مثالها ست، بلکه تمام زیبایی آن زمانی آشکار میشود که خود شما سعی در نوشتن یک برنامه کواین میکنید. وقتی شروع میکنید به نوشتن یک برنامه کواین، خیلی زودتر از آنچه تصور میکنید به مشکل برخورد خواهید کرد. هر چه زبان انتخابی شما دارای boilerplate(*) های بیشتری باشد کار شما برای نوشتن کواین سختتر خواهد بود زیرا بیشتر وقت شما برای بازتولید بویلر پلیت صرف خواهد شد. از طرف دیگر هرچه بویلر پلیتها در زبان بیشتر باشند، مسایل اصلی در نوشتن کواین، راحتتر دیده میشوند.
🤔نمونه ی شاهکاری از یک برنامه Quine رو در ویدیو بالا می تونید ببینید .
🪐@devefun♾