لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش برنامه نویسی Common Lisp: از مبتدی تا توسعه دهنده موثر
Common Lisp programming: from novice to effective developer
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
زبان Lisp، ابزارها و اکوسیستم را بیاموزید تا به یک برنامه نویس مولد و شاد تبدیل شوید. درک زبان Lisp بر جریان کار Lisp مبتنی بر تصویر و تعاملی تسلط داشته باشید استفاده از Common Lisp برای برنامهنویسی روزانه توسعه و استقرار برنامههای کاربردی دنیای واقعی یادگیری ساختارهای عملکردی، مدیریت خطا. CLOS و بیشتر را پوشش خواهد داد درک ماکروهای Lisp، محاسبات نمادین و محاسبه زمان کامپایل
Common Lisp یک زبان عالی است. این پیشگام در بسیاری از مفاهیم در علوم کامپیوتر بوده است، و در حالی که قدیمی است، هنوز توسط شرکت های بزرگ (همه محاسبات کوانتومی، گوگل) و همچنین شرکت های تک نفره (من!) در صنعت استفاده می شود. من به شما کمک می کنم آن را به طور موثر یاد بگیرید.
جدید: من به تازگی 18 ویدیوی خود را در مورد MACROS در سپتامبر 2023 منتشر کردم!
زیرنویس وجود دارد.
کیفیت صدا از ابتدا در سال 2021 به طرز چشمگیری بهبود یافته است. ویدیوهای جدید (تکرار، پروژه ها، شرایط، ماکروها...) دارای صدای عالی هستند. من صدای 3 ویدیوی قدیمی را دوباره ضبط کردم (آخرین به روز رسانی: ژانویه 2023). صدای برخی ویدیوها دارای اشکالاتی است (برخی در فصل "عملکردها" باقی مانده است). گام به گام بیشتر را دوباره ضبط خواهم کرد. با تشکر!
من ویدیوهای تکمیلی را در یوتیوب (کانال vindarel) منتشر می کنم.
اگر اکنون مشترک شوید، فصلهای بعدی را با همان قیمت دریافت خواهید کرد.
زبان Lisp با خانواده زبانهای شبیه به Algol/C متفاوت است، و محیطهای توسعه Lisp هنوز قابلیتهای بینظیری را ارائه میدهند: تجربه توسعه تعاملی و مبتنی بر تصویر، در حالی که هشدارهای نوع و خطاها را در زمان کامپایل در کسری از زمان دریافت میکنند. دوم، سرعت در همان گروه C، Rust و Java (در حالی که کمتر عرق میکنید تا به نتیجه برسید)، در حالی که از ثبات در طول دههها، و غیره، و غیره، و غیره اطمینان حاصل میکند.
با این حال، شما در آستانه ورود به دنیای جدید بزرگی هستید. لبه های ناهمواری وجود دارد، اطلاعات گاهی اوقات از هم جدا می شوند و به سختی کشف می شوند، علیرغم کار مداوم من روی منابع مشترک.
بنابراین، من دانش و تجربه خود را از بیش از شش سال مطالعه مداوم، اصلاح، نوشتن، پرسیدن و پاسخ به سؤالات، کشف کتابخانه ها، آزمون و خطا، انتشار کتابخانه های منبع باز، کیت های شروع و پروژه های نمایشی جمع آوری کردم و در پروژه های بلندپروازانه و اجرای خدمات تجاری در این سری از ویدیوها.
ما زبان، ابزارها، مهمترین قطعات اکوسیستم را یاد خواهیم گرفت تا بتوانیم نرم افزار Common Lisp را از پایه توسعه دهیم. من با Emacs و Slime توسعه خواهم داد (شما می توانید از Atom/Pulsar، Vim، VSCode، Sublime، Lem و موارد دیگر استفاده کنید)، نحو را یاد می گیریم، همه چیز را در مورد توابع و ماکروها، تمام ساختارهای تکرار، مدیریت خطا و شرایط خواهیم دید. ، سیستم شیء CLOS (آینده)، ما مقداری توسعه وب انجام خواهیم داد (ضبط شده، در اواخر سپتامبر 2023 ارائه می شود) و باینری ها را می سازیم و برنامه های خود را در سرورهای تولید و غیره مستقر خواهیم کرد.
من واقعا خوشحالم که همه اینها را در این قالب ویدیویی جدید با شما به اشتراک می گذارم و برای شما سفری سرگرم کننده آرزو می کنم.
PS: نکته حرفه ای: اگر ویدیویی را خیلی کند می بینید یا فکر می کنید محتوا را می شناسید، آن را با سرعت x1.25 یا x1.5 تماشا کنید. با این حال، توصیه میکنم از محتوا صرفنظر نکنید، زیرا نکاتی را اینجا و آنجا و در داخل بخشی که بر اساس محتوای ویدیوی قبلی ساختهایم ارائه میدهم.
سرفصل ها و درس ها
شروع شدن
Getting started
SBCL را نصب کنید
Install SBCL
کد Lisp را از ترمینال خود اجرا کنید، با یک ویرایشگر متن ساده کد بنویسید
Run Lisp code from your terminal, write code with a simple text editor
NEW - اسکریپت با باتری گنجانده شده است
NEW - Scripting with batteries included
Portacle: یک Common Lisp IDE قابل حمل، چند پلتفرمی و آماده برای استفاده
Portacle: a portable, multiplatform, ready-to-use Common Lisp IDE
اصول لیسپ
Lisp basics
نحو لیسپ و مدل ارزیابی
Lisp syntax and evaluation model
متغیرها
Variables
شرایط
Conditionals
تکرار
Iteration
تکرار بر روی لیست ها و بردارها
Iterating over lists and vectors
تکرار کلیدها و مقادیر روی یک جدول هش
Iterating over a hash-table keys and values
تکرار به تعداد ثابت یا بی نهایت بار
Iterating a fixed or infinite number of times
حلقه: نمای کلی سطح بالا و گوچاها
Loop: high level overview and gotchas
همه چیز در مورد توابع
All about functions
نحوه ایجاد توابع با نام، نحوه مدیریت انواع آرگومان ها
How to create named functions, how to handle all types of arguments
ارجاع توابع، تعریف مجدد توابع به صورت محلی، دسترسی به اسناد
Referencing functions, redefining functions locally, accessing documentation
چندین ارزش بازگشتی
Multiple Return Values
توابع مرتبه بالاتر
Higher Order Functions
بسته شدن
Closures
توابع setf
setf functions
توابع عمومی (معرفی سریع، اوج گرفتن مخفیانه به CLOS)
Generic Functions (quick intro, sneak peak to CLOS)
کار با پروژه ها
Working with projects
نحوه کار با یک پروژه موجود
How to work with an existing project
چگونه یک پروژه جدید ایجاد کنیم
How to create a new project
به هر حال سیستم ها و بسته ها چیست؟
What are systems and packages anyways?
رسیدگی به خطا و شرایط
Error and condition handling
چگونه یک خطا، یک هشدار و یک شرط ساده ایجاد کنیم
How to create an error, a warning and a simple-condition
نحوه رسیدگی به ("گرفتن") انواع خطاها و شرایط
How to handle ("catch") all sorts of errors and conditions
چگونه خطاهای خود را تعریف کنیم
How to define our own errors
نادیده گرفتن - خطاها
IGNORE-ERRORS
UNWIND-PROTECT: "در نهایت" در تلاش/گرفتن/در نهایت
UNWIND-PROTECT: the "finally" in try/catch/finally
HANDLER-BIND پشته را باز نمی کند.
HANDLER-BIND doesn't unwind the stack.
ماکروها
MACROS
معرفی سریع
Quick intro
ماکروهای C در مقابل ماکروهای Lisp
C macros VS Lisp macros
نقل قول (نقل قول ساده)
QUOTE (simple quote)
بک کیوت و کاما: دومین مکانیسم مهم ماکرو
BACKQUOTE and COMMA: the second most important macros mechanism
چگونه متوجه شویم که از ماکرو استفاده می کنید
How to spot you are using a macro
توابع در مقابل ماکروها
Functions VS macros
COMMA SPLICE، @ سومین مکانیسم مهم ماکرو
COMMA SPLICE ,@ the third most important macro mechanism
&body و سایر پارامترهای کلان. مدل کلان دوم ما.
&body and other macro parameters. Our second macro model.
با هم قرار دادن این: ماکرو با اکو. ماکرو اکسپند در حال استفاده
Putting this together: with-echo macro. Macroexpand in use.
GENSYM - راه حل ساده برای خطرناک ترین ماکرو گوچا
GENSYM -the simple fix to the most dangerous macros gotcha
الگوی CALL-WITH: ساده کردن ماکروها
CALL-WITH pattern: simplifying macros
کامپایل محاسبه زمان
Compile time computing
VS AST را فهرست می کند
Lists VS AST
دو نمونه ماکرو برای محاسبه زمان کامپایل
Two example macros for compile-time computing
نماد-ماکرو
SYMBOL-MACRO
ارزیابی زمان خواندن با #.
Read-time evaluation with #.
نمایش نظرات