آموزش برنامه نویسی 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 #.

  • ابزار ویرایشگر: macrostep EDITOR TOOL: macrostep

نمایش نظرات

آموزش برنامه نویسی Common Lisp: از مبتدی تا توسعه دهنده موثر
جزییات دوره
5.5 hours
44
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
774
4.4 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Vincent Dardel Vincent Dardel

توسعه دهنده تمام پشته