در این مطلب، ویدئو اصطلاحات برنامه نویسی: توابع درجه یک با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:02,070
سلام به همه، در این
2
00:00:02,070 –> 00:00:04,019
ویدیوی برنامه نویسی شرایط برنامه نویسی چگونه پیش می رود، ما
3
00:00:04,019 –> 00:00:06,180
به بررسی اصطلاح توابع درجه یک می
4
00:00:06,180 –> 00:00:07,200
پردازیم، اکنون به توابع درجه یک
5
00:00:07,200 –> 00:00:09,120
در جاوا اسکریپت و در
6
00:00:09,120 –> 00:00:11,610
پایتون می پردازیم تا بتوانید مفهوم را در دو
7
00:00:11,610 –> 00:00:13,230
زبان مختلف ببینید. ممکن است
8
00:00:13,230 –> 00:00:15,360
کمی به این واژه کمک کند، اما
9
00:00:15,360 –> 00:00:17,160
اگر هیچ یک از این زبانها را نمیدانید، نگران نباشید،
10
00:00:17,160 –> 00:00:19,260
آنچه مهم است
11
00:00:19,260 –> 00:00:21,090
از ویدیو حذف شود، مفهوم
12
00:00:21,090 –> 00:00:23,070
توابع درجه یک است و نه
13
00:00:23,070 –> 00:00:25,260
نحو خاص هر یک از زبانها.
14
00:00:25,260 –> 00:00:27,029
توابع درجه یک
15
00:00:27,029 –> 00:00:29,789
به شما کمک می کند تا اصطلاحات دیگری مانند
16
00:00:29,789 –> 00:00:32,130
عملکردهای آب بالاتر و
17
00:00:32,130 –> 00:00:34,559
بسته شدن را درک کنید، بنابراین این یک اصطلاح بسیار مفید است که به آن
18
00:00:34,559 –> 00:00:36,989
توجه داشته باشید، بنابراین
19
00:00:36,989 –> 00:00:38,730
اگر تعریف را
20
00:00:38,730 –> 00:00:41,430
در ویکی پدیا جستجو کنید، یکی از اولین خطوط
21
00:00:41,430 –> 00:00:43,920
را مشاهده خواهید کرد. این است که می گوید یک زبان برنامه نویسی
22
00:00:43,920 –> 00:00:45,570
23
00:00:45,570 –> 00:00:47,700
اگر با توابع به
24
00:00:47,700 –> 00:00:50,010
عنوان شهروندان درجه یک رفتار کند، گفته می شود که دارای توابع درجه یک است و سپس اگر
25
00:00:50,010 –> 00:00:51,600
شهروندان درجه یک را برای
26
00:00:51,600 –> 00:00:53,910
برنامه نویسی جستجو کنید، می گوید که یک کلاس اول
27
00:00:53,910 –> 00:00:56,190
شهروند ass نوعی که گاهی اوقات
28
00:00:56,190 –> 00:00:58,079
در یک زبان برنامه نویسی یک شی درجه
29
00:00:58,079 –> 00:01:00,870
یک نامیده می شود، موجودی است که از
30
00:01:00,870 –> 00:01:03,180
تمام عملیاتی که به طور کلی در دسترس
31
00:01:03,180 –> 00:01:05,040
سایر نهادها
32
00:01:05,040 –> 00:01:06,810
33
00:01:06,810 –> 00:01:08,970
34
00:01:08,970 –> 00:01:11,280
35
00:01:11,280 –> 00:01:13,320
است پشتیبانی می کند. آیا این بدان معنی است
36
00:01:13,320 –> 00:01:14,670
که ما باید بتوانیم
37
00:01:14,670 –> 00:01:17,009
توابع را درست مانند هر شی یا متغیر دیگری رفتار
38
00:01:17,009 –> 00:01:19,380
کنیم، بنابراین فکر می کنم
39
00:01:19,380 –> 00:01:21,150
وقتی به این مثال های کدنویسی نگاهی بیندازیم این موضوع واضح تر خواهد شد،
40
00:01:21,150 –> 00:01:23,729
بنابراین اینجا در سمت چپ
41
00:01:23,729 –> 00:01:25,890
من پایتون و اینجا در درست است، من
42
00:01:25,890 –> 00:01:27,990
جاوا اسکریپت دارم، بنابراین شما می توانید این مفهوم
43
00:01:27,990 –> 00:01:30,299
را در دو زبان مختلف ببینید، خوب، بنابراین
44
00:01:30,299 –> 00:01:32,909
اول از همه بیایید ببینیم که
45
00:01:32,909 –> 00:01:35,909
تخصیص یک تابع به یک متغیر
46
00:01:35,909 –> 00:01:37,950
به چه معناست، حالا این بدان معنا نیست که ما
47
00:01:37,950 –> 00:01:39,570
نتیجه تابع را به یک متغیر اختصاص می دهیم.
48
00:01:39,570 –> 00:01:41,430
اینجاست که برخی افراد گیج میشوند
49
00:01:41,430 –> 00:01:44,070
، و مثالی که من در اینجا آوردهام،
50
00:01:44,070 –> 00:01:46,020
این همان کاری است که ما با
51
00:01:46,020 –> 00:01:48,000
توابع انجام میدهیم، بنابراین یک تابع به نام
52
00:01:48,000 –> 00:01:50,369
Square داریم و ما setti هستیم. ng این متغیر F
53
00:01:50,369 –> 00:01:53,460
برابر با مربع 5 است، اکنون در اینجا
54
00:01:53,460 –> 00:01:56,009
در این خط، من
55
00:01:56,009 –> 00:01:58,619
تابع Square را چاپ می کنم و
56
00:01:58,619 –> 00:02:00,689
این متغیر F را چاپ می کنم، بنابراین می روم
57
00:02:00,689 –> 00:02:02,100
و آن را اجرا می کنم و سپس می روم برای
58
00:02:02,100 –> 00:02:04,740
انجام همین کار در جاوا اسکریپت و من ادامه می دهم
59
00:02:04,740 –> 00:02:06,570
و آن را اجرا می کنم تا
60
00:02:06,570 –> 00:02:08,729
هر زمان که من مربع تابع
61
00:02:08,729 –> 00:02:11,430
را چاپ می کنم می توانید ببینید که
62
00:02:11,430 –> 00:02:13,630
آن تابعی به نام مربع است و اکنون
63
00:02:13,630 –> 00:02:16,390
F در حال چاپ کردن 25 است و
64
00:02:16,390 –> 00:02:18,340
این به این دلیل است که ما به تابع مربع به پنج منتقل شدیم
65
00:02:18,340 –> 00:02:20,380
و این همان
66
00:02:20,380 –> 00:02:22,150
چیزی است که اینجا در جاوا اسکریپت
67
00:02:22,150 –> 00:02:24,220
است. مربع تابعی را که ما از سیستم
68
00:02:24,220 –> 00:02:26,710
خارج شدیم چاپ می شود و همچنین F را وارد می کنیم
69
00:02:26,710 –> 00:02:28,840
که مربع پنج است در حال حاضر چیزی که بسیاری از
70
00:02:28,840 –> 00:02:30,880
مردم انجام نمی دهند. متوجه میشویم که میتوانیم
71
00:02:30,880 –> 00:02:33,790
این پرانتزها را در اینجا حذف کنیم و
72
00:02:33,790 –> 00:02:36,640
متغیر F خود را روی تابع مربع قرار دهیم، بنابراین
73
00:02:36,640 –> 00:02:38,890
اگر این پرانتزها را برداریم و
74
00:02:38,890 –> 00:02:41,020
آن را ذخیره کنم و اجازه بدهم همین کار را اینجا
75
00:02:41,020 –> 00:02:43,780
در جاوا اسکریپت انجام دهم و حالا
76
00:02:43,780 –> 00:02:45,970
آن پرانتزها را خیلی از افراد حذف کردهایم.
77
00:02:45,970 –> 00:02:47,320
در این مرحله زمین می خورند و آنها فقط
78
00:02:47,320 –> 00:02:49,090
ت آرگومان ها را بردارید و آنها
79
00:02:49,090 –> 00:02:51,040
داخل پرانتز می گذارند، اما شما نمی خواهید این کار را انجام
80
00:02:51,040 –> 00:02:52,450
دهید زیرا پرانتز به این معنی است که
81
00:02:52,450 –> 00:02:53,950
ما تابعی را که
82
00:02:53,950 –> 00:02:55,630
نمی خواهیم اجرا کنیم،
83
00:02:55,630 –> 00:02:58,060
فقط می خواهیم متغیر F را برابر کنیم.
84
00:02:58,060 –> 00:03:00,940
به تابع اجرا نشده است، بنابراین حالا
85
00:03:00,940 –> 00:03:03,820
که من متغیر F را برابر مربع
86
00:03:03,820 –> 00:03:07,180
دارم، اگر اکنون این را اجرا کنم، اجازه دهید این کد را اجرا کنم،
87
00:03:07,180 –> 00:03:09,910
بنابراین اکنون می توانید ببینید که وقتی
88
00:03:09,910 –> 00:03:12,730
چاپ می شود FF با تابع مربع ما برابر
89
00:03:12,730 –> 00:03:14,830
است، بنابراین این یکی از
90
00:03:14,830 –> 00:03:16,360
جنبههای معنای تابع درجه یک بودن،
91
00:03:16,360 –> 00:03:18,640
بنابراین اکنون میتوانیم
92
00:03:18,640 –> 00:03:21,730
متغیر f را به عنوان یک تابع در نظر بگیریم، بنابراین اکنون میتوانم
93
00:03:21,730 –> 00:03:24,190
از f استفاده کنم دقیقاً همانطور که از مربع استفاده میکنم، بنابراین
94
00:03:24,190 –> 00:03:26,590
به جای چاپ F، چه میشود اگر
95
00:03:26,590 –> 00:03:28,990
f از پنج را چاپ کنم. و من آن را دقیقاً
96
00:03:28,990 –> 00:03:31,570
مانند یک تابع اجرا می کنم، بنابراین می توانید ببینید
97
00:03:31,570 –> 00:03:34,000
که اگر همین کار را در
98
00:03:34,000 –> 00:03:38,230
جاوا اسکریپت انجام دهم، 25 دریافت می کنم، سپس در آنجا نیز 25 دریافت می کنم،
99
00:03:38,230 –> 00:03:41,230
بنابراین تا کنون یک تابع به
100
00:03:41,230 –> 00:03:43,000
یک متغیر اختصاص داده ایم، اما می توانیم توابع را نیز
101
00:03:43,000 –> 00:03:45,580
به عنوان ارسال کنیم. آرگومان ها و
102
00:03:45,580 –> 00:03:47,650
توابع بازگشتی به عنوان نتیجه توابع دیگر،
103
00:03:47,650 –> 00:03:50,320
پس بیایید نگاهی بیندازیم در هر
104
00:03:50,320 –> 00:03:52,840
دوی این مثالها و اتفاقاً اگر
105
00:03:52,840 –> 00:03:55,240
تابعی توابع دیگر را به عنوان
106
00:03:55,240 –> 00:03:58,209
آرگومان بپذیرد یا توابعی را به عنوان
107
00:03:58,209 –> 00:04:00,010
نتیجه آنها برگرداند، این همان چیزی است که شما آن را
108
00:04:00,010 –> 00:04:02,170
تابع مرتبه بالاتر می نامید، بنابراین ابتدا اجازه دهید
109
00:04:02,170 –> 00:04:04,420
به مثالی از ارسال یک تابع
110
00:04:04,420 –> 00:04:07,120
به عنوان آرگومان به تابع دیگر نگاه کنیم. یک
111
00:04:07,120 –> 00:04:08,980
مثال عالی از این تابع نقشه
112
00:04:08,980 –> 00:04:11,320
هم در پایتون و هم در
113
00:04:11,320 –> 00:04:13,750
جاوا اسکریپت است، بنابراین تابع نقشه یک
114
00:04:13,750 –> 00:04:16,750
تابع و یک آرایه را به عنوان آرگومان های خود می گیرد
115
00:04:16,750 –> 00:04:19,060
و هر مقدار از آن آرایه را
116
00:04:19,060 –> 00:04:21,548
از طریق تابع ارائه شده اجرا می کند و سپس
117
00:04:21,548 –> 00:04:24,729
یک آرایه جدید از آن نتایج را برمی گرداند.
118
00:04:24,729 –> 00:04:26,200
فکر میکنم
119
00:04:26,200 –> 00:04:27,480
اگر به یک
120
00:04:27,480 –> 00:04:31,560
مثال در اینجا نگاهی بیندازیم واضحتر میشود، بنابراین من یک تابع نقشه نمونه
121
00:04:31,560 –> 00:04:33,600
در اینجا دارم، این
122
00:04:33,600 –> 00:04:35,670
تابع نقشه داخلی نیست، اما کاری که ما میخواهیم انجام دهیم این
123
00:04:35,670 –> 00:04:37,860
است که خودمان را از ابتدا بسازیم.
124
00:04:37,860 –> 00:04:39,690
به این ترتیب ما میتوانیم دقیقاً ببینیم چه اتفاقی میافتد،
125
00:04:39,690 –> 00:04:43,050
بنابراین اجازه دهید همه این متغیرهای قدیمی را
126
00:04:43,050 –> 00:04:46,410
در اینجا حذف
127
00:04:46,410 –> 00:04:48,990
کنم و این را حذف کنم و فعلاً آنها را پایین میآورم و اجازه
128
00:04:48,990 –> 00:04:51,560
دهید همین کار را اینجا در
129
00:04:51,560 –> 00:04:55,290
جاوا اسکریپت انجام دهم، بنابراین اجازه دهید ادامه دهم و
130
00:04:55,290 –> 00:04:58,110
حرکت خوب اجازه دهید من ادامه دهم و
131
00:04:58,110 –> 00:05:01,950
این کد را در اینجا حذف کنم، بنابراین
132
00:05:01,950 –> 00:05:04,680
ما یک تابع نقشه ساخته شده سفارشی در
133
00:05:04,680 –> 00:05:06,960
اینجا داریم که به نوعی
134
00:05:06,960 –> 00:05:09,090
مانند عملکرد نقشه داخلی عمل می کند و کاری که
135
00:05:09,090 –> 00:05:12,150
ما انجام می دهیم این است که یک تابع را دریافت می کنیم. به عنوان
136
00:05:12,150 –> 00:05:14,490
یک آرگومان و سپس یک
137
00:05:14,490 –> 00:05:16,620
آرایه را به عنوان آرگومان در نظر می گیریم و سپس در اینجا می
138
00:05:16,620 –> 00:05:18,330
خواهیم یک حلقه آرایه نتیجه خالی
139
00:05:18,330 –> 00:05:21,750
از میان همه آیتم های
140
00:05:21,750 –> 00:05:24,600
آرایه ارسال شده ایجاد کنیم و هر یک از آن
141
00:05:24,600 –> 00:05:26,730
آیتم ها را از طریق تابعی که ما انجام می دهیم اجرا کنیم.
142
00:05:26,730 –> 00:05:28,710
به عنوان آرگومان وارد شده و آن را
143
00:05:28,710 –> 00:05:30,690
به نتیجه اضافه کنید و بعد از اتمام
144
00:05:30,690 –> 00:05:32,430
کار، نتیجه را برمی گردانیم، بنابراین می
145
00:05:32,430 –> 00:05:34,320
توانید در اینجا ببینید، من یک مثال دارم که در آن من
146
00:05:34,320 –> 00:05:37,470
این متغیر مربع ها را برابر با
147
00:05:37,470 –> 00:05:40,410
تابع نقشه من تنظیم می کنم. ‘m در
148
00:05:40,410 –> 00:05:42,810
تابع مربعی که در اینجا ایجاد
149
00:05:42,810 –> 00:05:45,030
کردیم می گذرانم و سپس لیستی از
150
00:05:45,030 –> 00:05:48,900
مقادیر را از 1 به 5 و دوباره هم اینجا
151
00:05:48,900 –> 00:05:51,690
و هم پایتون و هم در جاوا اسکریپت ارسال می کنم، توجه داشته باشید که
152
00:05:51,690 –> 00:05:54,360
وقتی این را می گذارم از پرانتز استفاده نمی کنم.
153
00:05:54,360 –> 00:05:56,700
تابع مربع در این
154
00:05:56,700 –> 00:05:58,590
تابع دیگر به دلیل اضافه کردن
155
00:05:58,590 –> 00:06:00,660
پرانتز ما سعی میکنیم تابع را اجرا
156
00:06:00,660 –> 00:06:02,280
کنیم و این جایی نیست که ما
157
00:06:02,280 –> 00:06:02,820
اینجا انجام
158
00:06:02,820 –> 00:06:05,340
میدهیم، ما تابع را اجرا نمیکنیم تا زمانی که
159
00:06:05,340 –> 00:06:08,610
این خط در تابع نقشه ما قرار دارد،
160
00:06:08,610 –> 00:06:11,220
بنابراین اجازه دهید من ادامه دهم و این را اجرا کنم تا
161
00:06:11,220 –> 00:06:13,620
هر زمان که وارد شدیم بتوانید نتایج را ببینید.
162
00:06:13,620 –> 00:06:16,620
این لیست و تابع مربع برای
163
00:06:16,620 –> 00:06:18,360
تابع نقشه ما، بنابراین می توانید اینجا را ببینید
164
00:06:18,360 –> 00:06:20,190
که مربع ها را چاپ کردیم، این
165
00:06:20,190 –> 00:06:22,680
لیست از 1 تا 5 گرفته شد و همه
166
00:06:22,680 –> 00:06:25,200
آن اعداد را مربع کرد و اگر من این کار را اینجا
167
00:06:25,200 –> 00:06:26,940
در جاوا اسکریپت انجام دهم، همان
168
00:06:26,940 –> 00:06:29,580
کار را انجام می دهد و در واقع برای به دست آوردن همان
169
00:06:29,580 –> 00:06:31,140
نتیجه در اینجا، باید از
170
00:06:31,140 –> 00:06:34,440
1 شروع کنم و تا پایان آن بروم، بنابراین اجازه دهید
171
00:06:34,440 –> 00:06:36,420
آن را ذخیره کنم و مجدداً اجرا کنم، بنابراین اکنون می
172
00:06:36,420 –> 00:06:38,130
توانید ببینید که ما همان
173
00:06:38,130 –> 00:06:41,249
نتایج را دریافت می کنیم. مفید است زیرا
174
00:06:41,249 –> 00:06:44,039
اکنون میتوانیم هر تابعی را به
175
00:06:44,039 –> 00:06:46,439
تابع نقشه سفارشی خود که ایجاد کردهایم منتقل کنیم، به
176
00:06:46,439 –> 00:06:49,349
عنوان مثال، من یک تابع مکعب
177
00:06:49,349 –> 00:06:52,319
در اینجا دارم حالا اجازه دهید این تابع مکعب را بگیرم
178
00:06:52,319 –> 00:06:54,419
و فقط آن را به تابع نقشه خود منتقل
179
00:06:54,419 –> 00:06:56,779
کنم و من همین کار را انجام خواهم داد. اینجا در
180
00:06:56,779 –> 00:06:59,209
جاوا اسکریپت، پس اجازه دهید آن را روشن کنم و
181
00:06:59,209 –> 00:07:02,699
آن را دوباره اجرا کنید و در مثال پایتون
182
00:07:02,699 –> 00:07:04,529
من باید در واقع این را قطع کنم
183
00:07:04,529 –> 00:07:06,779
و با تابع مربع به بالا به اینجا منتقل کنم،
184
00:07:06,779 –> 00:07:08,909
بنابراین اجازه دهید آن را ذخیره کنم و دوباره اجرا
185
00:07:08,909 –> 00:07:10,589
کنم تا بتوانید تمام کارهایی که ما انجام دادیم به صورت
186
00:07:10,589 –> 00:07:12,869
متفاوتی در این تابع جدید منتقل کردیم را ببینید.
187
00:07:12,869 –> 00:07:15,509
به عنوان یک آرگومان برای تابع نقشه ما
188
00:07:15,509 –> 00:07:18,239
و سپس از آن تابع
189
00:07:18,239 –> 00:07:21,419
در اینجا برای اجرای هر یک از این
190
00:07:21,419 –> 00:07:23,969
مقادیر به جای تابع مربع استفاده کرد،
191
00:07:23,969 –> 00:07:25,619
بنابراین مفید است که بتوانیم
192
00:07:25,619 –> 00:07:28,319
توابعی مانند این را منتقل کنیم، بنابراین در
193
00:07:28,