<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های متین کریم پور</title>
        <link>https://virgool.io/feed/@matin_karimpour</link>
        <description>علاقه‌مند به یادگیری ماشین همراه با نیم نگاهی به زبان جذاب Rust :)</description>
        <language>fa</language>
        <pubDate>2026-06-17 00:41:38</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/389014/avatar/EOTYND.jpg?height=120&amp;width=120</url>
            <title>متین کریم پور</title>
            <link>https://virgool.io/@matin_karimpour</link>
        </image>

                    <item>
                <title>کد تمیز در PyTorch</title>
                <link>https://virgool.io/@matin_karimpour/clean-code-in-pytorch-tsm9b1qn7fg6</link>
                <description>هر از گاهی گوگل برام مطالبی که زیاد دنبال کردم رو نوتیفی میده که بخونم. یه مقاله بود که به نظرم ممکنه برای خیلی از ما مفید باشه . اون همین پستیه که امروز میذارم. امیدوارم برای شما هم مفید باشه. مقاله اصلی رو می‌تونید اینجا بخونید.این عکس با اسفاده از Bing ساخته شده است.
مقدمهدر زمینه علم داده و به طور کلی برنامه نویسی، نوشتن کدهایی که خواندن و نگهداری آنها آسان باشد بسیار مهم است. مطمئناً شما نیز تجربه نوشتن کدی را داشته‌اید که به نظر می‌رسد خوب کار می‌کند و کاملاً واضح است، اما یک روز یا یک هفته بعد دوباره آن را خوانده‌اید و نامفهوم به نظر می‌رسد. زمانی که باید کدهای نوشته شده توسط افراد دیگر را مرور کنید، این مشکل آشکارتر است.در هوش مصنوعی، نوشتن کد واضح و قابل فهم بسیار مهم است، زیرا ما اغلب باید چندین آزمایش را تنظیم کنیم، و سپس چندین مدل، چندین داده و هزاران هایپرپارامتر را امتحان کنیم.در این مقاله نکاتی را که در برنامه نویسی با PyTorch به کار می برم با شما به اشتراک می گذارم که می توانید فوراً از آنها استفاده کنید و امیدوارم به شما کمک کند در کار خود به عنوان یک دانشمند داده کمی کارآمدتر شوید.یک کلاس DataModule برای مدیریت داده های خود ایجاد کنیددر این مثال، من با مجموعه داده معروف MNIST کار خواهم کرد. اگرچه شیوه‌هایی که من استفاده می‌کنم ممکن است در این مورد غیر ضروری به نظر برسند، زیرا کتابخانه‌های مختلف استفاده از مجموعه‌های داده ساده را تسهیل می‌کنند، آنها همیشه می‌توانند هنگام کار با مجموعه داده‌های پیچیده‌تر مفید باشند.بسیاری از اوقات هنگام کار با مجموعه داده های غیراستاندارد، ما باید مراحل مختلفی را طی کنیم، مانند دانلود داده ها، ساختار پوشه ها و زیرپوشه ها برای تقسیم داده ها، ایجاد یک کلاس Dataset سفارشی و موارد دیگر. بنابراین مفید خواهد بود که یک کلاس DataModule ایجاد کنیم که از هر کاری که لازم است در آن انجام شود و دو تابع را ارائه می دهد که مستقیماً بارگذارهای داده را که برای آموزش استفاده خواهیم کرد، برمی گرداند.داشتن چنین کلاسی به ما این امکان را می دهد که گردش کار تمیزتر و امکان گسترش کار را ساده‌تر داشته باشیم. بیایید به یک مثال ساده نگاه کنیم.در این حالت، کلاس DataModule با استفاده از دو تابع، کار ایجاد مجموعه داده‌ها و نمونه‌سازی داده‌های بارگزار انجام میدهد. به این ترتیب در تابع main به سادگی می توانم توابع ()train_dataloader و ()val_dataloader را برای دسترسی به داده های خود فراخوانی کنم. به طور کلی، اگر برخی از وظایف بازیابی داده‌ها را دارید که باید برای جمع‌آوری مجموعه داده‌های خود انجام دهید، تمرین خوبی است که آنها را به کلاس DataModule اضافه کنید، که سپس می‌توان از آن برای نمونه‌سازی داده‌بار استفاده کرد. به این ترتیب می توانید به روشی ساده به داده ها دسترسی داشته باشید.بیایید روش TensorFlow را بازتولید کنیممن از طرفداران TensorFlow نیستم، در واقع، مگر اینکه لازم باشد. من تقریبا همیشه با PyTorch کار می کنم. اگرچه، من متوجه شدم که روش fit() TensorFlow بسیار مفید است. در واقع، پس از ایجاد یک مدل، فقط باید model.fit(data) را فراخوانی کنید تا آن را آموزش دهید، تا حدودی مانند مدل هایی که در scikit-learn انجام می دهید.پس چرا چیزی مشابه را در PyTorch نیز بازسازی نکنید؟کاری که در مثال بعدی انجام خواهیم داد این است که یک تابع مناسب را تعریف کنیم که شبکه را روی داده های MNIST با در نظر گرفتن DataModule ایجاد شده قبلی به عنوان ورودی آموزش می دهد. پس از آن، این تابع را به روشی از کلاس خود تبدیل می کنیم که مدل را تعریف می کند.به این ترتیب هر زمان که بخواهیم یک مدل متفاوت ایجاد کنیم، همیشه می‌توانیم آن را با تابع ()fit مرتبط کنیم که بدون تغییر باقی می‌ماند.اکنون می توانیم از model.fit (datamodule = datamodule, epochs = 3) برای اجرای آموزش خود استفاده کنیم.Progress Barدر طول آموزش مدل، نداشتن نکاتی در مورد اینکه چقدر طول می کشد تا تمام شود، واقعا آزاردهنده است. اما خوشبختانه، پیاده سازی نوار پیشرفت در PyTorch به روشی واقعا ساده امکان پذیر است.فقط از تابع tqdm استفاده کنید و دیتالودر را ایجاد کنید و طول کل دیتالودر را با len(dataloader) مشخص کنید.به این ترتیب، یک نوار پیشرفت ظاهر می شود که گویی به صورت جادویی، خروجی را از نظر بصری بسیار جذابتر می کند.معیارهای ارزیابینمی‌دانم چرا، اما وقتی کدهای نوشته شده در PyTorch را می‌خوانم، اغلب می‌بینم که افرادی معیارهای رایج  مانند دقت، یادآوری، دقت… را به صورت دستی پیاده‌سازی می‌کنند.با این حال، زمانی که آنها با کتابخانه های دیگری مانند scikit-learn کار می کنند، اینطور نیست. پیاده‌سازی این معیارها در تابع آموزشی می‌تواند خواندن تابع را دشوار کند و شاید باگ‌ها حتی راحت‌تر وارد شوند.پیشنهاد من این است که هنگام کار از معیارهایی که قبلاً در کتابخانه‌هایی مانند scikit-learn یافت شده است استفاده کنید. این به ما امکان می دهد از کدهایی استفاده کنیم که احتمالا قوی تر هستند اما مهمتر از آن در زمان ما صرفه جویی می کنند!البته اگر نیاز به پیاده‌سازی معیارهای سفارشی باشد، بحث متفاوت است، بنابراین اگر مثلاً روی روش‌های جدید ارزیابی مدل تحقیق می‌کنید.به خصوص زمانی که شروع به توسعه یک پروژه می کنیم و می خواهیم از معیارهای استاندارد استفاده کنیم تا ببینیم آیا در مسیر درستی هستیم یا خیر، استفاده از تابع classification_report در scikit-learn مفید است. بیایید به یک مثال نگاه کنیم.امیدوارم که این مقاله برای شما هم مفید بوده باشه. خوشحال میشم نظرتون درمورد این پست و پست‌های قبلم بگید :))</description>
                <category>متین کریم پور</category>
                <author>متین کریم پور</author>
                <pubDate>Sun, 26 Mar 2023 19:23:14 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی polars، جایگزین pandas!</title>
                <link>https://virgool.io/@matin_karimpour/polars-apja6rqcjs7p</link>
                <description>اکثر دانشمندان/تحلیلگران داده که از پایتون استفاده می کنند با pandas آشنا هستند. و اگر در زمینه علم داده فعالیت می کنید، احتمالاً زمان زیادی را صرف یادگیری نحوه استفاده از آنها برای دستکاری داده های خود کرده اید. با این حال، یکی از مشکلات اصلی pandas سرعت و ناکارآمدی آن در هنگام برخورد با مجموعه داده های بزرگ است. خوشبختانه، یک کتابخانه دیتافریم جدید وجود دارد که سعی دارد به این شکایت اصلی در مورد پانداها رسیدگی کند polars.ماژول Polars کتابخانه دیتافریم است که به طور کامل با Rust برای پایتون و Rust نوشته شده است. در این پست، من شما را با اصول اولیه Polars و نحوه استفاده از آن به جای pandas آشنا می کنم. در پست‌های بعدی، به سراغ زبان Rust میریم و با هم با استفاده از burn یک مدل شبکه عصبی از صفر راه اندازی می‌کنیم. معرفی Polarsبهترین راه برای درک Polars این است که کتابخانه دیتافریم بهتری نسبت به pandas است. در اینجا برخی از مزایای Polars نسبت به pandas اشاره شده است:اول Polars از ایندکس برای دیتا فریم استفاده نمی کند. حذف ایندکس، دستکاری دیتافریم را بسیار آسان‌تر می‌کند (به هر حال، ایندکس در دیتافریم پانداز زیاد است).دوم Polars داده ها را به صورت داخلی با استفاده از آرایه های Apache Arrow نشان می دهد در حالی که Pandas داده ها را در داخل با استفاده از آرایه های NumPy ذخیره می کند. آرایه های Apache Arrow در زمینه هایی مانند زمان بارگذاری، استفاده از حافظه و محاسبات بسیار کارآمدتر هستند.سوم Polars از عملیات موازی بیشتری نسبت به پانداها پشتیبانی می کند. چون که Polars در Rust نوشته شده است، می تواند بسیاری از عملیات را به صورت موازی انجام دهد.چهار Polars از ارزیابی تنبل پشتیبانی (lazy evaluation) می کند. بر اساس کوئری شما، Polars کوئری‌های شما را بررسی می کند، آنها را بهینه می کند و به دنبال راه هایی برای سرعت بخشیدن به کوئری یا کاهش مصرف حافظه می گردد. از سوی دیگر، Pandas فقط از ارزیابی مشتاقانه(eager evaluation) پشتیبانی می کنند، که بلافاصله به محض برخورد یک عبارت، آن را ارزیابی می کند.نصب Polarsدر این پست صرفا به polars در پایتون می‌پردازیم. برای نصب به سادگی میتوانید از دستور pip استفاده کنید:pip install polarsیا می‌توانید از conda استفاده کنید:conda install polarsشروع کار با Polarsدر ادامه بعد از نصب برای آشنایی بیشتر یک دیتافریم می‌سازیم و با چند تایع ابتدایی آن کار می‌کنیم.کار با DataFrameبهترین راه برای یادگیری یک کتابخانه جدید این است که دستان خود را کثیف کنید. بنابراین بیایید با وارد کردن ماژول Polars و ایجاد یک Polars Dataframe شروع کنیم:خروجی Polars هم مانند pandas زمانی که دیتافریم در Jupyter Notebook نمایش داده می شود، به زیبایی چاپ می کند:یک نکته مهم این است که polars نام ستون‌ها را به صورت رشته (string) قبول می‌کند. کد زیر را برای نمونه نگاه کنید:کد بالا این خطا را به همراه دارد:ValueError: Series name must be a string.همانطور که دید قطعه کد بالا کار کرد زیرا کلیدهای دیکشنری از نوع عدد صحیح (0 و 1) هستند. برای اینکه کار کند، باید مطمئن شوید که کلیدها از نوع رشته ای هستند (&quot;0&quot; و &quot;1&quot;):در Polars علاوه بر نمایش نام سرصفحه برای هر ستون، نوع داده هر ستون را نیز نمایش می دهد. اگر می خواهید نوع داده هر ستون را به صراحت نمایش دهید، از ویژگی های dtypes استفاده کنید:برای دریافت نام ستون ها، از ویژگی columns استفاده کنید:برای دریافت محتوای دیتافریم به عنوان لیستی از تاپل ها، از متد ()rows استفاده کنید:در polars برخلاف pandas مفهوم index وجود ندارد. فلسفه طراحی Polars به صراحت بیان می کند که index در دیتافریم مفید نیست.انتخاب ستون‌هاانتخاب ستون(ها) در Polars سر راست است - به سادگی نام ستون را با استفاده از روش ()select مشخص کنید:و خروجی آن به صورت زیر می‌باشد:لازم به ذکر است polars از روش براکت مربع نیز پشتیبانی می کند، روشی که اکثر توسعه دهندگان pandas با آن آشنا هستند. با این حال، مستندات برای Polars به طور خاص ذکر کرده است که روش براکت مربع یک ضد الگو برای Polars است. در حالی که می‌توانید با استفاده از df[:,[0]] کارهای بالا را انجام دهید، این احتمال وجود دارد که روش نمایه‌سازی براکت مربع در نسخه‌های بعدی Polars حذف شود. برای مثال می‌توانید با استفاده از کد پایین هم ستون‌ها را انتخاب کنید.df[&#039;Model&#039;]اگر می‌خواهید تمام ستون‌های عدد صحیح (مخصوصاً Int64) را در دیتافریم بازیابی کنید، می‌توانید از یک عبارت در متد ()select استفاده کنید:عبارت pl.col(pl.Int64) به عنوان یک اصطلاح در Polars شناخته می شود. این اصطلاح به این صورت تعبیر می‌شود: تمام ستون‌هایی که نوع داده‌شان Int64 است را دریافت کنید. قطعه کد بالا خروجی زیر را تولید می کند:اصطلاحات در polars بسیار قدرتمند هستند. به عنوان مثال، می توانید اصطلاحات را با هم ترکیب کنید، مانند این:اصطلاحات بالا ستون های Model و Sales را انتخاب می کند و سپس ردیف ها را بر اساس مقادیر موجود در ستون Sales مرتب می کند:انتخاب سطربرای انتخاب یک سطر در یک دیتافریم، شماره ردیف را با استفاده از متد ()row ارسال کنید. خروجی به صورت یک tuple می‌باشد:اگر نیاز به دریافت چندین ردیف بر اساس شماره ردیف دارید، باید از روش نمایه سازی براکت مربع استفاده کنید، اگرچه این روش توصیه شده در Polars نیست. در اینجا چند نمونه آورده شده است:برای انتخاب چند ردیف، Polars استفاده از تابع ()filter را توصیه می کند. به عنوان مثال، اگر می خواهید تمام محصولات اپل را بازیابی کنید، می توانید از عبارت زیر استفاده کنید:همچنین می توانید با استفاده از عملگر منطقی چندین شرط را مشخص کنید:می توانید از عملگرهای منطقی زیر در Polars استفاده کنید:| - OR&amp; - AND ~ - NOTانتخاب سطر و ستوناغلب اوقات، شما باید ردیف ها و ستون ها را همزمان انتخاب کنید. شما می توانید این کار را با زنجیر کردن متدهای ()filter و ()select مانند این انجام دهید:اگر می خواهید ستون Sales را نیز نمایش دهید، یک لیست را به متد ()select ارسال کنید:خلاصهدر این پست، من اصول اولیه Polars DataFrame را به شما نشان دادم. شما اصول استخراج سطرها و ستون ها و استفاده از متدهای ()select و ()filter را یاد گرفته اید. این پست ترجمه مقاله زیر می‌باشد.https://towardsdatascience.com/getting-started-with-the-polars-dataframe-library-6f9e1c014c5c</description>
                <category>متین کریم پور</category>
                <author>متین کریم پور</author>
                <pubDate>Sun, 15 Jan 2023 12:11:06 +0330</pubDate>
            </item>
                    <item>
                <title>یادگیری ماشین با Rust!</title>
                <link>https://virgool.io/@matin_karimpour/ml-rust-of5767b3cjiu</link>
                <description>امیدوارم که حالتون خوب باشه. البته میدونم خوب بودن یا حتی معمولی بودن توی این شرایط چقدر کار سخت و دشواریه. این خوب نبودن دلیل بر یاد نگرفتن و تجربه چیزای جدید نمیشه برای همین توی این پست قصد دارم درباره یادگیری ماشین با زبان جذاب Rust براتون بگم. توی پست قبلی درباره اینکه چطوری می‌تونید این زبان رو یاد بگیرید و تمرین کنید گفتم. برای شروع یه کمی از یادگیری ماشین و Rust میگم و بعد Linfa رو معرفی می‌کنم و در آخر با هم یه مثال رو که انجام دادم رو بررسی می‌کنیم. این پست رو برای افرادی که به Rust آشنا هستند و همزمان میخوان یادگیری ماشین رو شروع به یادگیری کنند توصیه میکنم. همچنین کسایی که آشنا به یادگیری ماشین هستند و میخوان بدونند زبان‌های دیگه چه ابزاری برای این کار دارند این پست برای اونا هم هست.یادگیری ماشین و Rustیادگیری ماشین یکی از رشته‌های پرطرفدار و پرکاربرد در کامپیوتر به حساب میاد و به شخصه برام بی‌نهایت جذاب و دوست داشتنیه. فرق یک برنامه یادگیری ماشین با برنامه‌های دیگه اینه که ما در برنامه‌های دیگه ما قاعده و قوانین یا همون تابع رو مینویسم و ورودی را به برنامه می‌دهیم و خروجی میگیریم. اما در یادگیری ماشین ما ورودی و خروجی را میدهیم و تابع احتمالی را میگیریم.زبان پایتون و R و حتی julia برای یادگیری ماشین کلی ابزار و پکیج فوق‌العاده و قدرتمند داره که کار رو واقعا ساده میکنه. یکی از اون پکیج‌ها کتابخانه scikit-learn پایتون هست که شامل ابزارهایی برای کار کردن با دیتا و الگوریتم‌های یادگیری ماشین هست. اما خب هیچ یک از این زبان‌ها کامل نیستند و هر کدام مزایا و معایبی دارند. برای مثال زبان پایتون با تمام پکیج‌های فوق‌العاده و قدرتمندش یک عیب بزرگ داره اونم اینه که بهینه نیست. Rust یک زبان برنامه نویسی قدرتمند و کارآمد است. درسته که Rust یک اکوسیستم بالغ نداره، اما ماهیت این زبان برنامه نویسی آن را برای برنامه هایی که نیاز به سرعت و کارایی دارند عالی می کنه.معرفی Linfa زبان Rust روز به روز در حال پیشرفت و گسترش هست و در هر زمینه جای خودشو پیدا میکنه. یکی از این زمینه‌ها که توسعه دهندگان خوشبین هستند که Rust در اون پیشرفت کنه یادگیری ماشین هست. Linfa یک پکیج برای یادگیری ماشین با زبان Rust هست که شامل الگوریتم‌های طبقه بندی، رگرسیون و خوشه‌بندی هست که کار رو برای برنامه نویسان ساده کرده.  Linfa مشابه scikit-learn در پایتون هست و سعی در ساده کردن استفاده از الگوریتم‌های یادگیری ماشین داره. می‌تونید مستندات این کتابخانه در این لینک بخونید.بررسی  یک مثال برای دید بهتر من یک مثال هم انجام دادم که الان صرفا به بخش یادگیری ماشین این مثال می‌پردازم و برای دیدن کامل کد میتونید به گیت‌هابم سر بزنید. این مثال مقایسه دقت چند الگوریتم برای دیتاست تایتانیک که یکی از مسابقات سایت kaggle هست انجام شده. من از قبل عمل پاکسازی اطلاعات رو روی این دیتاست انجام دادم و این دیتا رو میتونید در گیت‌هاب دانلود کنید. ابتدا با وارد کردن دستور زیر یک پروژه با نام ml_rust درست میکنیم:cargo new ml_rustوارد پوشه ml_rust میشویم و در Cargo.toml اسم پکیج‌های زیر را در پایین [dependencies] اضافه می‌کنیم:با وارد کردن دستور زیر در ترمینال پکیج‌ها را نصب میکنیم: cargo buildبعد از نصب وارد پوشه src میشویم و فایل main.rs را ادیت میکنیم ابتدا با دستورهای زیر پکیج‌ها را وارد میکینم:سپس دیتاست را وارد میکینم کد کامل خواندن فایل csv و تبدیل کردن آن Dataset رو بخاطر طولانی بودن اینجا توضیح ندادم: سپس دیتاست را به train و test تقسیم میکنیم:در این قسمت مدل‌ها که مد نظرمون هست رو فراخوانی میکنیم و train میکنم و در آخر دقت اونارو روی داده test میسنجیم و پرینت میکنیم. من الگوریتم‌های decision tree، logistic regression و SVM استفاده کردم:خب در این پست به معرفی کتابخانه Linfa در زبان Rust پرداختیم و با هم یک مثال رو بررسی کردیم. نظرتون راجع به این پست بگید و اینکه به نظرتون Rust  در یادگیری ماشین میتونه جایگزین پایتون بشه؟ البته نظر شخصیم این که درحال حاضر جایگزین مناسبی نیست ولی در آینده میتونه.</description>
                <category>متین کریم پور</category>
                <author>متین کریم پور</author>
                <pubDate>Sat, 03 Dec 2022 16:58:50 +0330</pubDate>
            </item>
                    <item>
                <title>با Rustlings مهارت خودت را در Rust بیشتر کن :)</title>
                <link>https://virgool.io/@matin_karimpour/learn-rust-with-rustlings-vuudwiasyqdi</link>
                <description>برای اینکه در هر حرفه‌ای به مهارت برسیم باید تا جایی که می‌تونیم تمرین کنیم. تا زمانی که تمرین نکنیم به تسلطی که باید، نمیرسیم. این روزها زبان Rust خیلی سر زبان شرکت‌های بزرگ و کوچک افتاده همه دارند به نوعی ازش استفاده می‌کنند. برای اینکه در Rust مهارت خودمان را بیشتر کنیم راه‌های متفاوتی هست که سعی می‌کنم در این پست بهش بپردازم. در این پست اول از Rust حرف می‌زنیم اینکه چه مزایایی داره و در ادامه از راه‌های یادگیری و افزایش مهارتش میگم.چرا Rust؟یکی از مشکلاتی برنامه نویسان دارند ران‌تایم ارور هست. اروری که موقع اجرای برنامه خودش را نشان میده. در Rust ران‌تایم ارور به حداقل خودش رسیده یا بهتره بگم نداریم در عوض موقع کامپایل کردن به شما هشدار یا خطا میده و این باعث شده که هم در وقت توسعه دادن برنامه صرفه‌جویی بشه هم اینکه برنامه ما برنامه مطمئنی باشه.یکی دیگه از مزایایی که می‌تونم بهش اشاره کنم داشتن پکیج منیجر فوق‌العاده خودشه که کار را برای برنامه نویس واقعا ساده کرده. کافیه یک بار با cargo کار کنید تا عاشقش بشید. Rust از سال 2016 جایزه مجبوب‌ترین زبان برنامه نویسی (نظرسنجی stack overflow) را گرفته و این نشانه‌ای است برای کسایی که می‌اندیشند :)).  من در این پست قصد گفتن تمام مزایای Rust رو ندارم و فقط به کلیلات بسنده می‌کنم. بریم ببینیم که Rustlings چیه؟یادگیری با Rustlingsهمینطور که در قسمت قبل گفته شد برای مهارت پیدا کردن در هر حرفه‌ای نیاز به تمرین کردن در آن داریم. Rustlings شامل  تمرین‌‌های کوچک طبقه‌بندی شده هست که شما باید پیام‌های کامپایلر را بخونید و با رفع کردن خطا باعث کامپایل شدن کد بشید. اگه سابقه کار کردن با Rust  را ندارید توصیه میشه کتاب (مستندات رسمی Rust) مطالعه کنید و بعد با Rustlings تمرین کنید. برای نصب طبق راهنمای صفحه گیت‌هاب عمل کنید. بعد از نصب کافیه در تریمینال دستور زیر رو بزنید:rustlings watchدستور بالا به ترتیب فایل‌های دایرکتوری exercises را کامپایل می‌کند تا به خطا برسد و یا کامنت زیر را در کد دارا باشد.// I AM NOT DONE همچنین دستور بالا به صورت خودکار به تغییراتی که می‌دهید واکنش نشان می‌دهد و پیش می‌رود. یک مثال هم با هم حل کنیم تا بیشتر آشنا بشیم. کد زیر مربوط به اولین رفع خطا در Rustlings می‌باشد.variables2.rsکد بالا خطای زیر را به همراه دارد.همینطور که از پیام کامپایلر معلوم است باید خط ۷ می‌باشد زیرا هنگام فراخوانی متغیر x به آن مقدار ندادیم. با تعیین مقدار برای آن پیام زیر را خواهیم داشت.خب با هم یکی از ساده‌ترین تمرین‌های Rustlings را حل کردیم :)). برای ادامه دادن باید کامنت خط ۴ راه پاک کنید تا به تمرین بعد بروید.در این پست سعی شد تا کمی درمورد مزایای زبان Rust صحبت بشه و برای تمرین بیشتر Rustlings معرفی شد و سعی کردیم باهم یک مقال هم حل کنیم. البته برای تمرین و یادگیری Rust می‌تونید از Rust with example که تا حدودی مشابه Rustlings هست. امیدوارم این پست براتون مفید بوده باشه. خوشحال میشم برام نظرتون را درمورد اولین پستم بگید.به امید فردایی بهتر :)</description>
                <category>متین کریم پور</category>
                <author>متین کریم پور</author>
                <pubDate>Sun, 23 Oct 2022 19:04:12 +0330</pubDate>
            </item>
            </channel>
</rss>