IDRIS(1) Idris man page IDRIS(1)

idris - زبان برنامه‌نویسی تابعی محض همه‌منظوره با انواع وابسته

idris [گزینه‌ها] [فایل‌ها]

ادریس (Idris) یک زبان برنامه‌نویسی همه‌منظوره و تابعی محض با انواع وابسته (Dependent Types) است. انواع وابسته امکان مشروط‌سازی انواع داده بر مقادیر را فراهم می‌آورند؛ بدین معنا که برخی جنبه‌های رفتار برنامه را می‌توان دقیقاً در تعریف نوع مشخص کرد. این زبان کامپایل‌شونده است و از ارزیابی مشتاق (Eager Evaluation) استفاده می‌کند. ویژگی‌های آن تحت تاثیر زبان‌های Haskell و ML شکل گرفته است.

+ انواع وابسته کامل با الگوی تطبیق وابسته (Dependent Pattern Matching)

+ عبارات case ساده، بندهای where و قاعده with

+ تطبیق الگو در اتصال‌های let و لانمبدا

+ سربارگذاری از طریق رابط‌ها (مشابه Type Class) و عبارات جامع موناد (Monad Comprehensions)

+ نشانه‌گذاری do و براکت‌های اصطلاحی (Idiom Brackets)

+ تسهیلات نگارشی برای فهرست‌ها، چندتایی‌ها و جفت‌های وابسته

+ بررسی جامعیت و خاتمه‌پذیری تابع (Totality Checking)

+ انواع هم‌استقرایی (Coinductive Types)

+ نحو حساس به تورفتگی، نحو قابل توسعه

+ اثبات قضایا مبتنی بر تاکتیک (تحت تاثیر Coq)

+ جهان‌های تجمعی (Cumulative Universes)

+ رابط ساده برای توابع خارجی (FFI)

+ محیط تعاملی به سبک Hugs

توجه به این نکته حائز اهمیت است که Idris در درجه نخست یک ابزار و پروژه پژوهشی است؛ بنابراین ابزارهای ارائه‌شده و برنامه‌های ایجادشده لزوماً نباید آماده محیط عملیاتی و استفاده صنعتی تلقی شوند.

عدم نمایش بنر آغازین
کاهش جزئیات خروجی (حالت بی‌صدا)
اجرای REPL ادریس با نحو قابل خواندن توسط ماشین
انتخاب یک سوکت برای گوش دادن حالت IDE
نسخه منسوخ‌شده برای --ide-mode
--ideslave-socket
نسخه منسوخ‌شده برای --ide-mode-socket
سطح لاگ اشکال‌زدایی
دسته‌بندی‌های لاگ‌گیری جداشده با دونقطه. برای مشاهده فهرست از --listlogcats استفاده کنید.
عدم استفاده از بسته پایه مشخص‌شده
عدم استفاده از پیش‌درآمد (prelude) مشخص‌شده
عدم استفاده از توابع توکار
فقط بررسی نوع (Typecheck) بدون راه‌اندازی REPL
مشخص کردن فایل خروجی
تولید فایل‌های رابط از ExportLists
غیرفعال کردن بررسی جهان (Universe checking)
الزام پیش‌فرض توابع به جامع بودن (Total)
هشدار درباره توابع جزئی اعلام‌نشده
هشدار درباره آرگومان‌های قابل دسترس اما غیرقابل دستیابی
نمایش دسته‌بندی‌های لاگ‌گیری
نمایش فلگ‌های پیونددهی (Link)
نمایش کتابخانه‌های نصب‌شده
نمایش دایرکتوری کتابخانه‌ها
نمایش فلگ‌های include
بیشترین میزان جزئیات خروجی
جزئیات بیشتر خروجی
نمایش خروجی پرجزئیات
نوشتن فایل‌های IBC در زیردایرکتوری
افزودن دایرکتوری به فهرست مسیرهای واردسازی
افزودن دایرکتوری به فهرست مسیرهای جستجوی سورس
افزودن بسته به‌عنوان یک وابستگی
درگاه TCP برای REPL
ساخت بسته
نصب بسته
راه‌اندازی REPL (فقط برای فایل‌های اجرایی)
پاک‌سازی بسته
تولید IdrisDoc برای بسته
تنها بررسی بسته
اجرای آزمون‌ها برای بسته
عدم کامپایل بیشتر خروجی تولیدکننده کد
کامپایل به فایل‌های شیء (Object) به‌جای فایل اجرایی
انتخاب تولیدکننده کد: همراه Idris گزینه‌های C و Javascript و Node و بایت‌کد گنجانده شده‌اند
آرگومان‌های ارسالی به تولیدکننده کد
ارزیابی یک عبارت بدون بارگذاری REPL
اجرا با عنوان idris
اجرا با عنوان idris
فعال کردن افزونه زبانی (TypeProviders یا ErrorReflection)
فعال‌سازی ارزیابی جزئی
در صورت پشتیبانی، تولیدکننده کد بر سه‌گانه هدف متمرکز می‌شود
در صورت پشتیبانی، تولیدکننده کد بر پردازنده نام‌برده شده متمرکز می‌شود (مانند corei7 یا cortex-m3)
اجبار به خروجی رنگی
غیرفعال کردن خروجی رنگی
کامپایل انواع شبیه Nat به اعداد بزرگ (Big Ints)
عدم کامپایل انواع شبیه Nat به اعداد بزرگ
انتخاب عرض کنسول: auto ، infinite ، nat
تولید هایلایت برای کد مبدأ
غیرفعال کردن هشدارهای منسوخ‌شدن برای زیرزبان تاکتیک قدیمی
چاپ اطلاعات نسخه
نمایش این راهنما

+ وب‌سایت ادریس: https://idris-lang.org

+ کانال IRC ادریس با شناسه ‎#idris در سرور chat.freenode.net

+ ویکی ادریس حاوی اطلاعات ارائه‌شده کاربران (https://github.com/idris-lang/Idris-dev/wiki)، به‌ویژه:


– https://github.com/idris-lang/Idris-dev/wiki/Manual


– https://github.com/idris-lang/Idris-dev/wiki/Language-Features

جامعه توسعه‌دهندگان ادریس (The Idris Community)

23 May 2020 1.3.3