payamvha/North_RAG huggingface dataset:
بو. بو (bō) چوبی با بلندی حدود شش فوت است که برخی اوقات دو انتهای آن باریک‌تر است. احتمالا از یک وسیله کشاورزی به نام "تنبین" (Tenbin) گرفته‌اند که چوبی است که آن را روی شانه‌ها می‌گذارند و دو سبد از دو انتهای آن آویزان می‌کنند. همچنین می‌تواند به عنوان دسته بیل یا شن‌کش استفاده شود. از جنگ‌افزارهای دیگری همچون جو و هانبو بلندتر است و می‌تواند حتی از عصاهای پیاده‌روی‌های راهبان نیز گرفته شده باشد. بو را قویترین جنگ‌افزار اوکیناوایی می‌دانند چرا که ضعف دیگر جنگ‌افزارها در مبارزه با آن نمایان می‌شود. بو
جنگ‌افزارها در مبارزه با آن نمایان می‌شود. بو قدیمی‌ترین جنگ‌افزار اوکیناوایی است و معمولاً با چوب بلوط سرخ یا سفید ساخته می‌شود. سای. سای (Sai)، یک جنگ‌افزار سه‌شاخه است که گمان می‌رود از وسیله‌ای مانند چنگک کشاورزی به وجود آمده‌باشد که در کشاورزی بکار می‌رود. پلیس محلی اوکیناوا (Ufuchiku) در دوره فئودال ژاپن از وسیله‌ای مانند سای بهره می‌برد که بنام جیت یا جوت شناخته می‌شد و شباهت زیادی با اسلحه سای دارد. جیت در نوع پیشرفته با نام سای-جیت نیز شناخته می‌شود. شاخه میانی آن بلند بوده و برای ضربه زدن به حریف
شاخه میانی آن بلند بوده و برای ضربه زدن به حریف است و از دو شاخه کوچکتر اطراف آن برای گیر انداختن سلاح حریف (شمشیر، بو و غیره) استفاده می‌شود. گونه‌ای دیگر از آن وجود دارد که جهت دو شاخه کوچک ان برخلاف یکدیگر است و با نام مانجی‌سای شناخته می‌شود. تونفا. تونفا (Tonfa) یک چوب با طول حدود ۱۵ تا ۲۰ اینچ است که دسته‌ای کوچک به‌طور عمود بر آن قرار دارد و معمولاً با چوب درخت بلوط قرمز و به صورت جفتی ساخته می‌شود. بیشتر کاتاهای آن همچون کاتاهای دیگر جنگ‌افزارهای اوکیناوایی بیانگر فرم‌‌های دست خالی است. در دهه ۱۹۶۰
بیانگر فرم‌‌های دست خالی است. در دهه ۱۹۶۰ با افزایش گرایش به شناخت هنرهای رزمی در جهان، سازمان‌های اجرایی قانون در جهان به برتری‌های تاکتیکی تونفا بر باتوم پی بردند و بدین دلیل است که امروزه نیروهای امنیتی کشورهای مختلف از آن استفاده می‌کنند. نونچاکو. نونچاکو (Nunchaku) یک سلاح سرد سنتی اوکیناوایی است که از دو میلهٔ باریک تشکیل می‌شود که در انتها با یک زنجیر یا طناب کوتاه به هم متصل شده‌اند. یک باور عامیانه می‌گوید که نانچاکو در اصل یک ابزار خرمن‌کوبی برای جداکردن برنج از شلتوک بوده که کشاورزان ژاپنی آن را
برنج از شلتوک بوده که کشاورزان ژاپنی آن را به شکل یک سلاح مرگبار درآوردند تا با آن به نبرد سامورایی‌ها اشغالگر بپردازند. برخی دیگر نیز می‌گویند که کشاورزان اوکیناوایی، نونچاکو را با تغییر در نوعی لگام اسب در سدهٔ هفدهم میلادی ابداع کردند. نونچاکو در برخی هنرهای رزمی چینی نیز به کار گرفته می‌شود، اما چوب‌های نوع اوکیناوایی آن در اصل دارای سطح مقطع هشت‌ضلعی بوده و با موی اسب به هم متصل می‌شوند. گونه‌های مختلفی از آن وجود دارد، که برخی از سه قسمت تشکیل شده‌اند (سان‌ستسوکون) و برخی نیز از قطعات بیشتری. داشتن
(سان‌ستسوکون) و برخی نیز از قطعات بیشتری. داشتن این جنگ‌افزار در ایالت نیویورک آمریکا، کانادا و برخی کشورهای اروپایی غیرقانونی است. کاما. کاما (Kama)، ابزار کشاورزی سنتی ژاپن و فیلیپین است که از آن به عنوان جنگ‌افزار نیز استفاده می‌کنند. کاما را می‌توان تکی یا دوتایی به کار گرفت. در مبارزه از لبه و نوک تیغه کاما که بسیار تیز هستند استفاده می‌شود که به راحتی می‌تواند باعث ایجاد جراحت‌های خطرناک در حریف شود. در کاتاهای اوکیناوایی می‌توان از لبه و نوک تیغه کاما برای دفاع، گیر انداختن و خلع سلاح حریف استفاده
برای دفاع، گیر انداختن و خلع سلاح حریف استفاده کرد. اکو. اکو (Eku) (آنرا ایکو یا ای‌ئه‌کو نیز می‌نامند) جنگ‌افزاری اوکیناوایی است که از پارو گرفته شده و حدود ۱۶۰ سانتی‌متر طول دارد. طبق داستان‌های بازمانده از گذشته، ماهیگیران از پارو برای دفاع از خود در برابر دشمنان مسلح استفاده می‌کرده‌اند. معمولاً پیش از اینکه کسی شروع به یادگیری اکو کند به او بو (چوب بلند) را یاد می‌دهند. اکو وزنی بیشتر از بو دارد و مرکز ثقل آن نیز در مرکز آن نیست به همین دلیل یادگیری آن سخت‌تر از بو است. به دلیل وزن زیاد اکو، معمولاً
سخت‌تر از بو است. به دلیل وزن زیاد اکو، معمولاً تکنیک‌های آن شامل ضربه‌های دورانی بزرگ است.
کشتی با چوخه یکی از ورزش‌های محلی ایران است. کشتی با چوخه که در میان اهالی استان خراسان رواج دارد، از تاریخچهٔ کهنی برخوردار است و این ورزش بومی در بسیاری از مراسم محلی به خصوص جشن عروسی نیز رایج بوده است. مردم خراسان از قدیم برای این کشتی اهمیت خاصی قائل بودند و در پرورش پهلوانان این رشته می‌کوشیدند. این کشتی به‌طور سنتی در مراسم عروسی و نوروز در روستاها برگزار می‌شد که بعدها توسعه و رواج پیدا کرد. ریشهٔ نام. لفظ چوخه از قدیم در میان اقوام مختلف کرد و ترک و تات و ترکمن خراسان کاربرد داشته است. این واژه هم
تات و ترکمن خراسان کاربرد داشته است. این واژه هم به پارچه‌ای بافته شده از پشم گوسفند اطلاق می‌شد و هم به نوعی لباس بی آستین و پالتویی گرم برای چوپانان که از آن پارچه دوخته شده بود. اما اکنون فقط هنگام مسابقات ورزش کشتی با چوخه (که در عرف منطقه به آن کُشنی می گویند) کشتی گیران آن را به تن می‌کنند. در تعریف این واژه در برخی کتاب‌های منتشر شده در این دیار آمده است که واژه چوخه شنل کوتاهی است که کشتی گیران آن را با شال سفیدرنگی محکم می‌بندند. در فرهنگ ادبیات فارسی، واژه چوخا در یکی از ابیات خاقانی شروانی شاعر
واژه چوخا در یکی از ابیات خاقانی شروانی شاعر قرن ششم بدین صورت به چشم می‌خورد: مرا بینند اندر کنج غاری / شده مولوزن و پوشیده چوخا به نقل از مقدمه کتاب نزهت المجالس، زبان محاوره مردم شروان در زمان خاقانی مانند ساکنان سایر نواحی شمال غرب ایران،زبان آذری یا گونه‌ای از زبان پهلوی (یا فهلوی) بوده‌است و کلمه مولوزن به معنای به صدا درآورنده ناقوس است و حکایت از آن دارد که چوخا را نصاری در کلیسا می‌پوشیدند و به همین دلیل برهان قاطع ذیل فرهنگ لغات بازیافته چوغا را که همان چوخاست به معنای عبا گرفته است. این واژه در
همان چوخاست به معنای عبا گرفته است. این واژه در مقالات شمس نیز بدین صورت آمده است: ... گفتم که صد و پنجاه چوغا و پوستین فتد (مقالات: ص 232). در ذیل این جمله آمده است: «چوغا تلفظ دیگری از چوخاست، جامه‌ای شولا مانند، ضخیم و درشت بافت که با بند یا شالی بسته می‌شود که اغلب چوپانان می‌پوشند». کشتی با چوخه در دیگر کشورها. کشتی با چوخه را می‌شود مادر تمام رشته‌های کشتی آزاد و فرنگی، جودو و کوراش(کشتی بومی خراسانی‌ها) دانست. فردی پیروز میدان است که بتواند ۳بار پشت یا شانه‌های حریفش را به زمین برساند، بدون اینکه
یا شانه‌های حریفش را به زمین برساند، بدون اینکه زمانی برای رقابت درنظر گرفته شده باشد. اما مسابقه‌های امروزی این رشته در وقت ۱۰دقیقه‌ای برگزار می‌شود. کشتی چوخه به غیراز خراسان، با عناوین «گوراش»، «گولش» و «آلیش» در ازبکستان، قزاقستان و تاتارستان رواج دارد.‌ نحوهٔ اجرا. مسابقهٔ کشتی با چوخه در اصل رقابتی بدون مدت زمانی مشخص بوده است و وقتی فردی در آن پیروز میدان اعلام می‌شده که بتواند ۳ بار تخت پشت یا شانه‌های حریفش را به زمین برساند. اما مسابقه‌های امروزین این رشته در وقت ۱۰ دقیقه‌ای برگزار می‌شود که اگر
این رشته در وقت ۱۰ دقیقه‌ای برگزار می‌شود که اگر در پایان پیروزی نداشته باشد، سرنوشت برنده به وقت اضافی ۵ دقیقه‌ای موکول خواهد شد. ضمن این‌که اجرای فن در خاک و گرفتن زیر زانوی حریف خطا محسوب می‌شود و کُشتی‌گیران در ۴ یا ۵ وزن دسته‌بندی می‌شوند. چوخه‌کاران در چهار وزن ۷۰، ۸۰، ۹۰ و بالای ۹۵ کیلوگرم به مصاف یکدیگر می‌روند. گاه در اوزان ۶۵، ۷۵، ۸۵ و ۸۵+ کیلوگرم نیز رقابت میان شرکت‌کنندگان برگزار می‌شود. کشتی‌گیران آستین‌ها را تا آرنج بالا می‌زنند، کمربندی پارچه‌ای به میان می‌بندند و دامن‌های چوخه را برای آن‌که
به میان می‌بندند و دامن‌های چوخه را برای آن‌که مانع فعالیت دست و پا نشود برمی‌گردانند و زیر کمربند محکم می‌کنند؛ شلوار را نیز تا زانو بالا می‌زنند و با پاهای برهنه زیر نظر داوران کشتی می‌گیرند. در کشتی با چوخه کسی پیروز است که پشت حریف را به خاک برساند. در این مراسم ساز و دهل نیز می‌نوازند و تماشاگران کشتی‌گیران را تشویق می‌کنند. جوایز. جوایز کشتی با چوخه نیز به سبب ماهیت سنتی و ملی‌اش متفاوت است. در اصطلاح به فاتحان میدان چوخه «قند» اهدا می‌شود، کسی که نفر اول شود قند اول را به او می‌دهند و نفرات دوم و
اول شود قند اول را به او می‌دهند و نفرات دوم و سوم هم به تناسب قندهای دیگر می‌گیرند. در کنار قند، هدایایی نظیر شتر، قوچ، قالی و گوسفند، لوازم منزل، وجه نقد و سکه عاید پهلوانان این مسابقات می‌شود. غالباً به‌طور سنتی جوایز کشتی با چوخه از نمادهای زندگی عشایری و روستایی در نظر گرفته می‌شود. گاهی نیز از دست‌بافته‌های عشایر نظیر قالی و جاجیم و گلیم استفاده می‌شود. البته این جوایز می‌تواند در مناطق مختلف متفاوت باشد، مهم این است که جوایز متناسب با شأن این ورزش بوده و پشتوانه‌ای برای کشتی‌گیر باشد. زمان و مکان
بوده و پشتوانه‌ای برای کشتی‌گیر باشد. زمان و مکان برگزاری. مسابقات کشتی با چوخهْ خراسان قبل از آمدن روی تشک در سرای خان‌ها، عروسی‌ها، روز عید فطر و ۱۴ فروردین روی چمن و خاک نرم برگزار می‌شد. کشتی با چوخه از دیرباز معمولاً در دل طبیعت و محیط‌های باز برگزار می‌شده است. بیشتر گودهای کشتی با چوخهٔ کنونی که از قدیم دایر بوده‌اند، مانند گود پهلوان ججو در ریواده، گود زیارتگاه سلطان زیرابه در روستای امام وردی خان قوچان، گود روستای رهورد در قوچان، گود زینل‌خان در اسفراین، گود امام مرشد در فاروج و دیگر گودها که در
گود امام مرشد در فاروج و دیگر گودها که در مناطق تفریحی و دامان طبیعت قرار دارند. میدان کشتی چوخه محلی ۱۰ متر در ۱۰ متر است. کشتی روی خاک نرم یا چمن و با حضور انبوه تماشاگرانی از زن و مرد و پیر و جوان برگزار می‌شود. امروزه این مسابقات در اواسط زمستان و در بهمن ماه در مانه و سملقان، ۸ فروردین در ریواده، ۱۲ فروردین هر سال در شیروان، ۱۳ فروردین در بجنورد به‌صورت استانی با حضور پهلوانان نامدار این خطه برگزار می‌شود. اما رقابت‌های اصلی و ملی همه ساله در روز ۱۴ فروردین در گود زینل‌خان شهرستان اسفراین برگزار
۱۴ فروردین در گود زینل‌خان شهرستان اسفراین برگزار می‌شود. چوخه. پشم‌چینی گوسفندان در خراسان شمالی و خراسان رضوی به پز برین یا برین یا بری کردن معروف است در این میان به وسیلهٔ "هورینگ" یا همان قیچی پشم زنی، به سراغ بره‌هایی که پشم حنایی و زیبا دارند می‌روند، به پشم چیده شده که اولین بار به‌دست ممی آید "لواگ می‌گویند. سایر پشم‌هایی که چندین بار از بدن گوسفندان بزرگتر چیده می‌شود "هری" می‌نامند. لوا به‌دست آمده شسته، سپس حلاجی و «تیت» شده آنگاه به وسیلهٔ دوک یا تشی آن پشم‌ها را می‌ریسند تا توپ نخ و گریف
دوک یا تشی آن پشم‌ها را می‌ریسند تا توپ نخ و گریف به‌دست آید. سپس دار یا «تون» آماده می‌شود و نخ‌ها در کنار هم یکرنگ و همدست بافته می‌شوند و پارچه‌ای که از لوا یا هری بود ساخته می‌شود و به این پارچه چوخ گفته می‌شود. پارچه چوخ «توک» یا پُرز داده می‌شود پس از پایان کار جوانان و پهلوانان که عموماً ورزشکار هستند پارچه چوخ را برای تبدیل شدن به پالتو، کت و شلوار و پاتابه به دست خیاط می‌دهند. کشتی گیران و پهلوانان می‌بایست پالتوی چوخ را در هنگام مبارزه کشتی به تن می‌کردند و این از قوانین اولیه کشتی محسوب می‌شد و
می‌کردند و این از قوانین اولیه کشتی محسوب می‌شد و از این لحاظ کشتی را چوخه نام نهادند و این کشتی به کشتی چوخه شهرت یافت. لباس چوخه در آن روزگار مقاوم‌ترین لباس عشایر خراسان بود به‌طوری‌که هیچ پارچهٔ دیگری مثل پارچهٔ چوخه در مبارزهٔ کشتی‌گیران دوام نمی‌آورد. میدان کشتی با چوخه. میدان کُشتی که دایره‌ای با قطر ۱۰ متر است و کشتی در آن‌جا برگزار می‌شود. اجرای کشتی به شکل سنتی و بدون کلیشه (کشتی روی خاک و با سرنا و دهل) انجام می‌شود. از زیبایی‌های کشتی با چوخه برگزاری آن به شکل سنتی است که می‌تواند برای تمام
برگزاری آن به شکل سنتی است که می‌تواند برای تمام قشرها و رده‌های سنی جذابیت داشته باشد. کشتی با چوخه همیشه در فضای باز و طبیعت و اماکن تفریحی و روی خاک نرم یا چمن برگزار می‌شده است. دهل و سرنا. با نواختن دهل و سرنا (زورنه) توسط بخشی‌ها، کشتی‌گیران حول میدان کشتی به حرکت در می‌آیند و خود را گرم می‌کنند و برای مسابقه آماده می‌شوند. نوای دهل و سورنا بانگ آوازی نیز برای خبر کشتی است و از مردم می‌خواهد که جمع شوند و به تماشای کشتی بنشینند. دو نوازندهٔ سرنا و دهل با نواختن موسیقی، حال و هوای خاصی به ورزش کشتی
با نواختن موسیقی، حال و هوای خاصی به ورزش کشتی می‌دهند، در حین کشتی نوای سرنا و دهل یا قوشمه و دهل بخشی‌ها با ریتم خاصی شروع شده و به تدریج که کشتی اوج می‌گیرد ریتم آن نیز تندتر می‌شود و وقتی زورآزمایی کشتی‌گیران به اوج می‌رسد، بر سرعت چوب طبل و سرنا می‌افزایند.
راست یک زبان برنامه‌نویسی ترجمه‌شده، عام منظوره و چند الگویی است که توسط تحقیقات موزیلا توسعه یافته‌است. این زبان طراحی شده‌است تا یک زبان مطمئن، همسو و عملی باشد که مدل‌های تابعی خالص، امری-رویه‌ای و شی گرا را پشتیبانی می‌کند. زبان از یک پروژهٔ شخصی توسط توسعه‌دهندهٔ Graydon Hoare به‌وجود آمد، که او کار بر روی آن را در سال ۲۰۰۶ آغاز کرد؛ کارفرمای او موزیلا، در سال ۲۰۰۹ درگیر این پروژه شد و رسماً آن را برای اولین بار در سال ۲۰۱۰ پرده برداری کرد. در همان سال، کار از کامپایلرهای اولیه (نوشته شده در OCaml) خود
کار از کامپایلرهای اولیه (نوشته شده در OCaml) خود را به کامپایلر خود میزبان نوشته‌شده در Rust تغییر داد. چیزی که به‌عنوان rustc شناخته شد، با موفقیت خود را در سال ۲۰۱۱ کامپایل کرد. کامپایلر خود میزبان از LLVM به عنوان بَک‌اند (backend) استفاده می‌کند. اولین نسخه از کامپایلر Rust، که آلفا نام گذاری شد در ژانویه ۲۰۱۲ منتشر شد. نسخه فعلی (نسخه ۰٫۸)، در سپتامبر ۲۰۱۳ منتشر شده‌است. Rust به‌طور کامل در بازخورد باز و همکاری و کمک از جامعه توسعه یافته‌است. طراحی این زبان از طریق تجربه حاصل از نوشتن موتور چیدمان
این زبان از طریق تجربه حاصل از نوشتن موتور چیدمان Servo اصلاح شده و Rust خودش را کامپایل کرده‌است. اگر چه توسعه آن با حمایت مالی موزیلا و سامسونگ بوده‌است، اما یک پروژهٔ اجتماعی است. بخش بزرگی از تصدیقات نسخهٔ فعلی از اعضای جامعه می‌باشد. توصیف. هدف Rust این است که یک زبان خوب برای ایجاد مجموعهٔ بزرگی از مشتری‌ها و سرور برنامه‌هایی که بر روی اینترنت اجرا می‌شوند باشد.این امر زبان را به یکی از ویژگی‌های مجموعه با تأکید بر ایمنی، کنترل از طرح حافظه و همزمانی هدایت می‌کند. اگر عملکرد زبان تنها عامل مورد توجه
هدایت می‌کند. اگر عملکرد زبان تنها عامل مورد توجه باشد، عملکرد قابل اطمینان بودن کد همان‌طور که انتظار می‌رود آن را کندتر از ++C می‌کند اما پیشگیری‌های از پیش تعریف شده در Rust با احتساب اقدامات محتاطانه‌ای که زبان ++C به‌طور دستی انجام می‌دهد، از نظر سرعت برابری می‌کند و یا حتی سریعتر است.نحو زبان Rust مشابه C و ++C است؛ با بلاک‌هایی از کد که بین آکولادها محدود شده‌است و کلمات کلیدی کنترل جریان مانند while ,do ,else ,if و for. البته تمام کلمات کلیدی C و ++C وجود ندارد اما به هر حال دیگران (مانند تطابق
++C وجود ندارد اما به هر حال دیگران (مانند تطابق واژه کلیدی برای انشعاب چند جهت) برای برنامه‌نویسانی که از این زبان‌ها می‌آیند کمتر آشنا خواهد بود. با وجود شباهت نحوی، Rust از نظر معنایی با C و ++C متفاوت است. پروژه‌هایی که از راست استفاده می‌کنند. پروژه‌های توسعه یافته در Rust شامل: مبتنی بر مرورگر: مبتنی بر ابزار ساخت: پروژه‌های دیگر: نصب و راه‌اندازی Rust. برای استفاده از زبان Rust، باید ابتدا کامپایلر آن که با نام codice_1 شناخته می‌شود، نصب شود. بهترین و توصیه‌شده‌ترین روش برای نصب Rust استفاده از
و توصیه‌شده‌ترین روش برای نصب Rust استفاده از ابزار خط فرمان codice_2 است. این ابزار مدیریت نسخه‌های مختلف Rust و ابزارهای جانبی آن را بر عهده دارد و امکان به‌روزرسانی، حذف و نصب آسان کامپایلر را فراهم می‌کند. نصب بر روی لینوکس و macOS. در سیستم‌عامل‌های یونیکسی، می‌توان با اجرای دستور زیر در ترمینال، ابزار rustup و کامپایلر Rust را به‌سادگی نصب کرد: curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh همچنین برای کامپایل صحیح برخی بسته‌ها که به کدهای C وابسته‌اند، وجود یک کامپایلر C مانند
به کدهای C وابسته‌اند، وجود یک کامپایلر C مانند codice_3 یا codice_4 ضروری است. در توزیع‌هایی مانند Ubuntu توصیه می‌شود از دستور زیر برای نصب ابزارهای توسعه استفاده شود: sudo apt install build-essential نصب روی ویندوز. کاربران ویندوز می‌توانند با دانلود فایل نصب از وب‌سایت رسمی Rust یا اجرای دستور زیر در محیط PowerShell (در ویندوز ۱۰ یا ۱۱ که winget پشتیبانی می‌شود) اقدام به نصب کنند: winget install rustup در طول فرایند نصب ممکن است نیاز به نصب ابزارهای ساخت مانند Build Tools for Visual Studio باشد،
ساخت مانند Build Tools for Visual Studio باشد، مخصوصاً برای پشتیبانی از برخی بسته‌های وابسته به کد ++C. به‌روزرسانی و حذف. ابزار codice_2 امکان به‌روزرسانی نسخه Rust و یا حذف کامل آن را فراهم می‌کند: rustup update rustup self uninstall بررسی نصب موفق. برای اطمینان از نصب صحیح Rust، می‌توان دستور زیر را اجرا کرد: rustc --version که در صورت موفقیت، شماره نسخه نصب‌شده را نمایش می‌دهد. مستندات محلی. پس از نصب Rust، یک نسخه از مستندات زبان نیز به صورت آفلاین بر روی سیستم قرار می‌گیرد. با اجرای دستور زیر، این
روی سیستم قرار می‌گیرد. با اجرای دستور زیر، این مستندات در مرورگر باز می‌شوند: rustup doc نمونه‌ها. نمونه کد زیر برای Rust نسخه ۰٫۸ معتبر می‌باشد. نحو و معناشناسی ممکن است در نسخه‌های بعدی تغییر یابد.برنامه Hello World: fn main() { println!("Hello, World"); دو نمونه از تابع فاکتوریل در ساختارهای بازگشتی و ترتیبی : /* The branches in this function exhibit Rust's optional implicit return values, which can be utilized where a more "functional" style is preferred. Unlike C++ and related languages, Rust's `if`
Unlike C++ and related languages, Rust's `if` construct is an expression rather than a statement, and thus has a return value of its own. */ fn recursive_factorial(n: i32) -&gt; i32 { fn iterative_factorial(n: i32) -&gt; i32 { // Variables are declared with `let`. // The `mut` keyword allows these variables to be mutated. let mut i = 1; let mut result = 1; while i &lt;= n { result *= i; i += 1; return result; // An explicit return, in contrast to the prior function. fn main() { println!("Recursive result:
function. fn main() { println!("Recursive result: {:?}", recursive_factorial(10)); println!("Iterative result: {:?}", iterative_factorial(10)); یک نمایش ساده از قابلیت همزمانی ساده از Rust: /* This function creates ten "tasks" that all execute concurrently. Run it several times and observe the irregular output that results as each task races on stdout, due to the fact that each task may yield both between successive calls to `println` and within the `println` function itself. */ fn main() { // This string
function itself. */ fn main() { // This string is immutable, so it can safely be accessed from multiple tasks. let message = "Look at me, I'm in a lightweight thread!"; // `for` loops work with any type that implements the `Iterator` trait. for num in range(0, 10) { do spawn { println(message); // `println!` is a macro that statically verifies a format string. // Macros are structural (as in Scheme) rather than textual (as in C). println!("This message brought to you by task {:?}.", num); یک نمایش ساده از
to you by task {:?}.", num); یک نمایش ساده از اشاره‌گرهای هوشمند یگانی همراه با tagged unions و روش‌ها: use IntList::{Node, Empty}; // This program defines a recursive data structure and implements methods upon it. // Recursive data structures require a layer of indirection, which is provided here // by a unique pointer, constructed via the `Box::new` constructor. These are // analogous to the C++ library type `std::unique_ptr`, though with more static // safety guarantees. fn main() { let list =
// safety guarantees. fn main() { let list = IntList::new().prepend(3).prepend(2).prepend(1); println!("Sum of all values in the list: {}.", list.sum()); println!("Sum of all doubled values in the list: {}.", list.multiply_by(2).sum()); // `enum` defines a tagged union that may be one of several different kinds of values at runtime. // The type here will either contain no value, or a value and a pointer to another `IntList`. enum IntList { Node(i32, Box&lt;IntList&gt;), Empty // An `impl` block allows
Empty // An `impl` block allows methods to be defined on a type. impl IntList { fn new() -&gt; Box&lt;IntList&gt; { Box::new(Empty) fn prepend(self, value: i32) -&gt; Box&lt;IntList&gt; { Box::new(Node(value, Box::new(self))) fn sum(&amp;self) -&gt; i32 { // `match` expressions are the typical way of employing pattern-matching, // and are somewhat analogous to the `switch` statement from C and C++. match *self { Node(value, ref next) =&gt; value + next.sum(), Empty =&gt; 0 fn multiply_by(&amp;self, n: i32)
Empty =&gt; 0 fn multiply_by(&amp;self, n: i32) -&gt; Box&lt;IntList&gt; { match *self { Node(value, ref next) =&gt; Box::new(Node(value * n, next.multiply_by(n))), Empty =&gt; Box::new(Empty) بدافزارها. در مواردی، نویسندگان بدافزار نیز از زبان برنامه‌نویسی راست استفاده کرده‌اند. برای مثال، باج‌افزار BlackCat به زبان راست برنامه‌نویسی شده‌است.
الگوریتم تارژان (نام‌گذاری: مبدع، رابرت تارژان)، از الگوریتم‌های تئوری گراف است که برای پیدا کردن مؤلفه‌های قویاً همبند در یک گراف استفاده می‌شود. با وجود اینکه، این الگوریتم از نظر زمانی مقدم بوده‌است، می‌توان دید که نسخهٔ بهبود یافته الگوریتم کساراجو و از نظر کارایی (بازده) با الگوریتم مؤلفه قوی مبتنی بر مسیر قابل مقایسه است. نمای کلی. الگوریتم به عنوان ورودی گراف جهت داری را می‌گیرد، و افرازی از رئوس گراف به مؤلفه‌های قویاً همبند تولید می‌کند. هر راسی (گره) از گراف، دقیقاً یک بار در مؤلفه‌های همبند ظاهر
از گراف، دقیقاً یک بار در مؤلفه‌های همبند ظاهر می‌شود. هر راس که در یک دور جهت دار نیست، خودش به عنوان یک مؤلفه‌های قویاً همبند انتخاب می‌شود: برای مثال، راسی که درجه ورودی و درجه خروجی آن صفر باشد، یا هر راس از گراف بدون دور به تنهایی یک مؤلفهٔ قویاً همبند حساب می‌شوند. ایدهی ابتدایی این الگوریتم: الگوریتم جستجو عمق اول با راس دلخواه شروع می‌کند (و جستجوی بعدی عمق اول، بر روی راس‌هایی اعمال می‌شود که دیده نشدهاند). با الگوریتم جستجوی عمق اول، جستجو، هر راسی گراف را دقیقاً یک بار می‌بیند؛ بنابراین، مجموعه
گراف را دقیقاً یک بار می‌بیند؛ بنابراین، مجموعه ی درخت جستجو، یک جنگل پوشا از گراف است. مؤلفه‌های قویاً همبند، به عنوان زیردرختهای معین این درخت پوشا، به دست خواهد آمد. ریشهی این زیردرختها را، ریشهی مؤلفه‌های قویاً همبند می‌گویند. هر راسی از مؤلفه‌های قویاً همبند ممکن است به عنوان ریشه به کار گرفته شود، اگر اولین راسی باشد که از آن مؤلفه دیده می‌شود. پشته ثابت. راس‌ها به ترتیبی که دیده می‌شوند در داخل پشته جای می‌گیرند. زمانی که جستجوی عمق اول به صورت بازگشتی، راسی V و فرزاندانش را ملاقات کند، آن راس‌ها،
راسی V و فرزاندانش را ملاقات کند، آن راس‌ها، نباید تا قبل از بازگشت این فراخوانی بازگشتی از پشته، POP شوند. خاصیت یکسانی (ثابت)، این است که، یک راس بعد از پیمایش، بر روی پشته باقی می‌ماند، اگر و تنها اگر مسیری به برخی از راس‌های پایین‌تر در پشه وجود داشته باشد. بعد از اتمام فراخوانی ای که V و فرزاندان آن را پیدا می‌کند، ما می‌دانیم که آیا V به هر راسی قبل از خودش در پشته مسیر دارد یا خیر. اگر چنین بود فراخوانی بازمی‌گردد. V را در پشته به عنوان ثابت، نگاه می‌دارد. اگر نه، V باید ریشهی مؤلفه‌های قویاً همبند
اگر نه، V باید ریشهی مؤلفه‌های قویاً همبند باشد که شامل V و راس‌های بعدی در پشته است. (راس‌هایی که به V مسیر دارند ولی به ماقبل V مسیری ندارند). تمام مؤلفه‌ها، POP می‌شود و ثابت را نگه می‌دارد. پیاده‌سازی. هر راسی v به یک عدد صحیح، v.index اختصاص داده می‌شود که اعداد راس‌ها بصوت متوالی، بترتیبی که پیدا شدهاند، قرار داده می‌شود. همچنین یک مقدار، v.lowlink که کوچکترین اندیس هر راسی شناخته شدهی قابل دسترس از v، شامل خود v را نمایش می‌دهد، نگه داشته می‌شود؛ بنابراین، v باید سمت چپ پشته باشد اگر v.lowlinke
بنابراین، v باید سمت چپ پشته باشد اگر v.lowlinke &lt;v.index در حالی که، v باید به عنوان ریشه مؤلفه قویاً همبند حذف شود اگر v.lowlink==v.index. مقدار v.lowlink، در حین جستجوی عمق اول از v محاسبه می‌شود، همان‌طور که راس‌های قابل دسترس از v را پیدا می‌کند. شبه کد. algorithm tarjan is input: graph G = (V, E) output: set of strongly connected components (sets of vertices) index := ۰ S := empty for each v in V do if (v.index is undefined) then strongconnect(v) end if end for function strongconnect(v) // Set the
if end for function strongconnect(v) // Set the depth index for v to the smallest unused index v.index := index v.lowlink := index index := index + 1 S.push(v) // Consider successors of v for each (v, w) in E do if (w.index is undefined) then // Successor w has not yet been visited; recurse on it strongconnect(w) v.lowlink := min(v.lowlink, w.lowlink) else if (w is in S) then // Successor w is in stack S and hence in the current SCC v.lowlink := min(v.lowlink, w.index) end if end for // If v is a root
w.index) end if end for // If v is a root node, pop the stack and generate an SCC if (v.lowlink = v.index) then start a new strongly connected component repeat w := S.pop() add w to current strongly connected component until (w = v) output the current strongly connected component end if end function index variable همان شماره راس (گره) در الگوریتم جستجوی اول عمق می‌باشد. S پشتهٔ راس‌ها می‌باشد که در ابتدا خالی می‌باشد و برای ذخیره‌سازی راس‌هایی که دیده شده‌اند ولی هنوز به مؤلفه‌های قویاً همبند ملحق نشده‌اند
ولی هنوز به مؤلفه‌های قویاً همبند ملحق نشده‌اند می‌باشد. ذکر این نکته مهم است که این پشته همان پشتهٔ جستجوی اول عمق نمی‌باشد در واقع با خروج آن راس در الگوریتم جستجوی اول عمق از پشته حذف نمی‌شود و تنها در صورتی راس‌ها حذف می‌شوند که یک مؤلفهٔ قویاً همبند پیدا شود تا تمامی رأس‌های آن حذف شود. بیرونی‌ترین حلقه در کد بالا در بین راس‌هایی که هنوز دیده نشده‌اند جستجو می‌کند تا تضمین کند که راس‌هایی که از راس اول قابل دسترسی نیستند نیز دیده خواهند شد. تابع strongconnect یک جستجوی اول عمق را انجام می‌دهد که تمامی
یک جستجوی اول عمق را انجام می‌دهد که تمامی فرزندان راس v را می‌بیند و تمامی مؤلفه‌های قویاً همبند آن زیر گراف را پیدا می‌کند. هنگامی که هر راسی تابع بازگشتی جستجوی اول عمقش تمام می‌شود اگر مقدار lowlink آن برابر اندیس آن باشد یعنی آن راس ریشهٔ یک مؤلفهٔ قویاً همبند شامل تمام راس‌های بالاتر از آن درون پشته خواهد بود. الگوریتم تمامی راس‌های بالاتر از انرا از پشته خارج می‌کند و همهٔ آنهارا به عنوان یک مؤلفه در نظر می‌گیرد.