1 00:00:00,000 --> 00:00:05,180 2 00:00:05,180 --> 00:00:05,930 CONNOR HARRIS: سلام. 3 00:00:05,930 --> 00:00:06,820 من کانر هریس هستم. 4 00:00:06,820 --> 00:00:09,729 من یک CA CS50 در دانشگاه هاروارد است. 5 00:00:09,729 --> 00:00:11,270 استفان KREWSON: من استفان Krewson هستم. 6 00:00:11,270 --> 00:00:12,582 من یک TF برای CS50 در دانشگاه ییل است. 7 00:00:12,582 --> 00:00:15,790 CONNOR HARRIS: و ما قصد داریم به بحث در مورد برخی از فن آوری است که شما ممکن است 8 00:00:15,790 --> 00:00:18,880 مایل به استفاده از اگر شما علاقه مند در انجام یک پروژه نهایی و یا واقعا 9 00:00:18,880 --> 00:00:20,920 هر چیزی را با موسیقی است. 10 00:00:20,920 --> 00:00:24,400 ما قصد داریم به تمرکز بر روی اولین زبان برنامه نویسی به نام هاسکل. 11 00:00:24,400 --> 00:00:26,280 این یک عملکردی زبان، به طوری که پارادایم 12 00:00:26,280 --> 00:00:29,620 بسیار متفاوت از C یا پی اچ پی است یا دیگر زبان های آمرانه 13 00:00:29,620 --> 00:00:33,450 که شما استفاده می شود در حال حاضر، و به ویژه در یک کتابخانه نوشته شده در Haskell 14 00:00:33,450 --> 00:00:40,240 نام Euterpea، که می تواند به مردم کمک کند با نوشتن موسیقی عملکرد، 15 00:00:40,240 --> 00:00:40,780 اساسا. 16 00:00:40,780 --> 00:00:43,400 و استفان به شما راه رفتن از طریق یک مثال بزرگ آن. 17 00:00:43,400 --> 00:00:46,423 >> بعد از این، من شما را به شما معرفی چیزی به نام LillyPond که 18 00:00:46,423 --> 00:00:48,370 یک تکنولوژی برای موسیقی حروفچینی است. 19 00:00:48,370 --> 00:00:50,830 این نوع مانند LATEX برای موسیقی اگر هر کدام از شما 20 00:00:50,830 --> 00:00:57,530 لاتک را برای کلاس های ریاضی استفاده کرده اند و یا دیگر کلاس های مجموعه ای P و یا آنچه شما داشته باشد. 21 00:00:57,530 --> 00:01:00,440 و بنابراین من به شما، دوباره به من بدهید، نمونه های از که 22 00:01:00,440 --> 00:01:03,640 و اشاره شما را در به طور کلی جهت برخی از منابع بهتر است. 23 00:01:03,640 --> 00:01:04,319 >> استفان KREWSON: در علاوه بر این، ما آن را فکر 24 00:01:04,319 --> 00:01:06,720 می تواند سرد به راه اندازی یک کمی از نکات 25 00:01:06,720 --> 00:01:10,780 به سوی یک خط لوله بین فایل های MIDI-Euterpea تولید 26 00:01:10,780 --> 00:01:13,910 در LillyPond، بنابراین ما با ارائه برخی آموزش در اسکریپت 27 00:01:13,910 --> 00:01:16,310 برای انجام این کار که ارائه شده با LillyPond 28 00:01:16,310 --> 00:01:19,160 فقط آن را نگه دارید منبع باز و یک خط لوله رفتن. 29 00:01:19,160 --> 00:01:20,910 CONNOR HARRIS: باز هم، باید تأکید، 30 00:01:20,910 --> 00:01:23,100 این دو تکنولوژی، شما می لازم نیست که به استفاده از آنها را با هم. 31 00:01:23,100 --> 00:01:25,370 آنها طراحی شده به کار با هم، اگر آنها بسیار خوبی. 32 00:01:25,370 --> 00:01:26,362 >> استفان KREWSON: درست است. 33 00:01:26,362 --> 00:01:30,116 و کاملا رایگان است. 34 00:01:30,116 --> 00:01:32,240 CONNOR HARRIS: پس تشکر و قدردانی، فقط خواندن است. 35 00:01:32,240 --> 00:01:33,406 استفان KREWSON: حسب وظیفه، اشاره کرد. 36 00:01:33,406 --> 00:01:36,360 با تشکر از کسانی مردمی. 37 00:01:36,360 --> 00:01:39,180 این من در فقط برای یک لحظه معطل. 38 00:01:39,180 --> 00:01:41,560 مراحل نصب کمی روی حیله و تزویر. 39 00:01:41,560 --> 00:01:45,420 ما یک من در GitHub به عنوان خوانده شده که شما می توانید نگاهی به. 40 00:01:45,420 --> 00:01:47,840 فقط به من ایمیل اگر شما هر گونه سوال. 41 00:01:47,840 --> 00:01:52,829 اما ما این با فرض اجرا که این کار برای همه. 42 00:01:52,829 --> 00:01:55,620 CONNOR HARRIS: و اگر شما می توانید نیست گرفتن LillyPond به کار، هیچ معامله بزرگ. 43 00:01:55,620 --> 00:02:00,139 هیچ مجموعه زندگی می کنند وجود دارد که آن شرکت خواهند کرد، حداقل در پایان من است. 44 00:02:00,139 --> 00:02:02,930 استفان KREWSON: Haskell و LillyPond باید هر دو نصب داشته باشد. 45 00:02:02,930 --> 00:02:08,497 Euterpea به عنوان یک دانلود بسته، غیره و غیره. 46 00:02:08,497 --> 00:02:10,080 بنابراین ما در حال صحبت کردن در مورد موسیقی کامپیوتری. 47 00:02:10,080 --> 00:02:12,990 و این فقط یک بسیار مشاهده 50،000 پا. 48 00:02:12,990 --> 00:02:15,700 یک چند جنبه های مختلف آن وجود دارد. 49 00:02:15,700 --> 00:02:18,120 و این خشن است و رفتن به پنهان برخی جزئیات. 50 00:02:18,120 --> 00:02:22,090 اما ما می تواند چیزی فکر می کنم مانند ترکیب الگوریتم، 51 00:02:22,090 --> 00:02:24,920 با استفاده از الگوریتم، با استفاده از کد، برای تولید 52 00:02:24,920 --> 00:02:30,280 برخی از نوع of-- شاید خود مشابه دنباله ای از یادداشت، و یا شاید یادداشت 53 00:02:30,280 --> 00:02:33,330 در زیر برخی از محدودیت. 54 00:02:33,330 --> 00:02:35,350 و سپس آن می تواند انجام و یا تفسیر 55 00:02:35,350 --> 00:02:38,390 با ابزار آنالوگ و یا چیزی شبیه به آن. 56 00:02:38,390 --> 00:02:42,010 اما ترکیب شد انجام الگوریتمی. 57 00:02:42,010 --> 00:02:45,120 >> اما البته، شاید این منطقه از موسیقی کامپیوتری یا موسیقی دیجیتال 58 00:02:45,120 --> 00:02:48,870 ما بیشتر آشنا با دیجیتال است هستید سنتز صدا و یا نمونه برداری دیجیتال 59 00:02:48,870 --> 00:02:51,160 و ضبط دیجیتال. 60 00:02:51,160 --> 00:02:55,650 بسیاری از ابزارهای دیجیتال هستند از طریق نمونه برداری دیجیتال انجام می شود. 61 00:02:55,650 --> 00:03:00,110 در واقع، ما باید با استفاده از یکی از کسانی که در به شکل یک کتابخانه فونت صدا بعد. 62 00:03:00,110 --> 00:03:02,850 >> اما همچنین چیزی وجود دارد به نام سنتز دیجیتال که بیرون آمد 63 00:03:02,850 --> 00:03:08,650 از '70 و به اواخر 80s با یاماها و جان Chowning در دانشگاه استنفورد 64 00:03:08,650 --> 00:03:11,990 انجام سنتز و یا FM سنتز مدولاسیون فرکانس، 65 00:03:11,990 --> 00:03:15,100 که در آن شما یک حامل حال سیگنال و یک سیگنال مدوله 66 00:03:15,100 --> 00:03:18,270 هر دو در طیف های صوتی. 67 00:03:18,270 --> 00:03:22,570 اما چیزی که ما در متمرکز امروز چیزی به نام MIDI است، 68 00:03:22,570 --> 00:03:25,040 و البته، ترکیب الگوریتم. 69 00:03:25,040 --> 00:03:30,940 >> ما قصد داریم به ابزار است، اما ما در حال به جای رفتن به برخی از موسیقی، 70 00:03:30,940 --> 00:03:33,940 و پس از آن است که از تفسیر توسط برخی از ابزار است که 71 00:03:33,940 --> 00:03:38,300 مطابق به هستند استاندارد عمومی MIDI. 72 00:03:38,300 --> 00:03:40,830 پس چه MIDI است؟ 73 00:03:40,830 --> 00:03:45,550 من قصد ندارم به دریافت بیش از حد عمیق به آن، اما MIDI پروتکل انتقال داده است. 74 00:03:45,550 --> 00:03:49,250 این نوع از یک راهنمای در سراسر شرکت ها و صنایع مختلف 75 00:03:49,250 --> 00:03:52,250 برای سازماندهی برای تلفن های موبایل و یا تکه. 76 00:03:52,250 --> 00:03:54,170 بنابراین خواهیم دید که یک استاندارد MIDI وجود دارد 77 00:03:54,170 --> 00:03:57,500 برای همه کوبه ای مختلف برای تلفن های موبایل و توصیه MIDI 78 00:03:57,500 --> 00:04:01,360 برای همه انواع مختلف مصنوعی و یا انواع مختلف از همه ابزار 79 00:04:01,360 --> 00:04:03,650 گروه در یک ارکستر، می گویند. 80 00:04:03,650 --> 00:04:08,916 >> شما احتمالا با آن آشنا هستید 0 تا 127 پیام های MIDI. 81 00:04:08,916 --> 00:04:12,920 سیگنال MIDI معمولا یک بیت نشان می دهد 82 00:04:12,920 --> 00:04:16,130 آیا آن را یک داده یا وضعیت بسته، و پس از آن وجود دارد 83 00:04:16,130 --> 00:04:18,589 هفت بیت از یک سیگنال قرار دارند. 84 00:04:18,589 --> 00:04:21,430 و این می تواند کنترل همه چیز از حجم 85 00:04:21,430 --> 00:04:25,330 به عمل یا فشار در یک کلید خاص 86 00:04:25,330 --> 00:04:29,400 اگر شما در حال انجام با MIDI کنترل و همچنین، البته، 87 00:04:29,400 --> 00:04:31,250 یادداشت. 88 00:04:31,250 --> 00:04:33,450 و البته، MIDI است بسیار مفید بوده است، 89 00:04:33,450 --> 00:04:37,550 زیرا این راه به سیم است با هم و یا زنجیره ای گل مروارید 90 00:04:37,550 --> 00:04:41,570 یک دسته از دستگاه های سخت افزاری MIDI. 91 00:04:41,570 --> 00:04:44,050 من هفت یا هشت پشت در خانه من است. 92 00:04:44,050 --> 00:04:46,610 آن را می شود واقعا پیچیده است، اما واقعا قدرتمند است. 93 00:04:46,610 --> 00:04:47,460 و آن را واقعا قدیمی است. 94 00:04:47,460 --> 00:04:51,117 آن را از اوایل '80s، و آن را واقعا خوب و کوچک است. 95 00:04:51,117 --> 00:04:51,950 CONNOR HARRIS: آره. 96 00:04:51,950 --> 00:04:54,230 تمام کلاسیک نینتندو بازی های ویدئویی احتمالا 97 00:04:54,230 --> 00:04:56,088 فایل های MIDI برای موسیقی، به عنوان مثال. 98 00:04:56,088 --> 00:04:59,550 99 00:04:59,550 --> 00:05:01,740 >> استفان KREWSON: در اینجا یک به عنوان مثال از MIDI به طور کلی، 100 00:05:01,740 --> 00:05:06,520 نشان دادن MIDI به عنوان یک نوع پروتکل به طور کلی. 101 00:05:06,520 --> 00:05:13,280 و من فکر می کنم ما می توانیم از فکر می کنم تفاوت بین مشخصات 102 00:05:13,280 --> 00:05:17,830 که باید چیزی شبیه به وجود داشته باشد این ابزار برای تلفن های موبایل و واقعی 103 00:05:17,830 --> 00:05:21,740 تحقق این ابزار برای تلفن های موبایل در یک فونت صدا و یا یک MIDI خاص 104 00:05:21,740 --> 00:05:25,740 سینت سایزر به عنوان تفاوت بین شاید یک typeface-- که می گوید: 105 00:05:25,740 --> 00:05:30,350 به طور کلی، این طراحی است این روش خاصی برای نشان 106 00:05:30,350 --> 00:05:35,907 characters-- و یک فونت خاص که تا به اندازه و دایره زنگی خاص، 107 00:05:35,907 --> 00:05:37,240 و تحقق the-- وجود دارد 108 00:05:37,240 --> 00:05:39,156 >> CONNOR HARRIS: شاید یک مقایسه بهتر 109 00:05:39,156 --> 00:05:43,430 شود از استاندارد یونیکد says-- آن را می دهد یک عدد به هر شخصیت، و واقعا 110 00:05:43,430 --> 00:05:46,830 هر زبان در جهان است، و یا مجموعه ای گسترده از اسکریپت زبان 111 00:05:46,830 --> 00:05:51,310 در جهان، و سپس کسانی هستند ارائه به چیزی گرافیکی 112 00:05:51,310 --> 00:05:53,710 توسط بسته های مختلف فونت. 113 00:05:53,710 --> 00:05:56,630 و بدیهی است، شما می توانید از فکر می کنم MIDI به عنوان یونیکد صدا. 114 00:05:56,630 --> 00:06:03,250 و آن را فقط یک لیست of-- یک جریان بزرگ است از حوادث و ابزار و فلان چیز، 115 00:06:03,250 --> 00:06:06,090 و شما باید به یک جداگانه برنامه، مانند فونت، 116 00:06:06,090 --> 00:06:08,537 ارائه که به چیزی که قابل شنیدن است. 117 00:06:08,537 --> 00:06:12,360 118 00:06:12,360 --> 00:06:13,780 >> استفان KREWSON: پس چرا هاسکل؟ 119 00:06:13,780 --> 00:06:19,110 هاسکل برنامه نویسی کاربردی است زبان، بسیار پیشرفته، 120 00:06:19,110 --> 00:06:22,770 بسیار متفاوت از C، بسیار متفاوت از پی اچ پی. 121 00:06:22,770 --> 00:06:28,120 و ما قصد داریم برای دیدن وجود دارد که سهولت ترکیب تابع در Haskell 122 00:06:28,120 --> 00:06:37,640 که به ما اجازه خواهد نسیم را از طریق آهنگسازی و یا تایپ کردن و نوشتن، 123 00:06:37,640 --> 00:06:42,160 چیزی شبیه به فرر ژاک، این آهنگ ساده است که 124 00:06:42,160 --> 00:06:46,815 تا به بسیاری از قطعات در آن است که یا تکرار خود مشابه. 125 00:06:46,815 --> 00:06:49,740 126 00:06:49,740 --> 00:06:53,250 بنابراین این خواهد شد برخی از باشد انگیزه برای چرا 127 00:06:53,250 --> 00:06:59,400 ما با استفاده از هاسکل، که در آن توابع شهروندان درجه اول هستند. 128 00:06:59,400 --> 00:07:01,120 >> و من می خواستم به گسترش این یک کمی. 129 00:07:01,120 --> 00:07:08,800 این یک کمی آسان به یادداشت برداشتن فرر ژاک در Haskell. 130 00:07:08,800 --> 00:07:12,100 اما اگر ما می خواستیم اضافه کردن بخشی درام به آن؟ 131 00:07:12,100 --> 00:07:17,320 چه اگر ما می خواستیم را امتحان کنید تا چیزی شبیه به یک درام رولاند 808 یا 909 132 00:07:17,320 --> 00:07:20,970 ماشین آلات که در آن شما حدود 16 مراحل مختلف؟ 133 00:07:20,970 --> 00:07:24,590 معمولا این فکر یادداشت ها به عنوان 16. 134 00:07:24,590 --> 00:07:28,640 و شما می توانید جهانی را نیز کنترل سرعت، و شما می توانید انتخاب کنید 135 00:07:28,640 --> 00:07:34,620 یک دسته از قطعات کوبه ای مختلف از طبل، صدای دست زدن، تله های مختلف، 136 00:07:34,620 --> 00:07:37,540 کلاه باز و بسته در این نوع از کانال، 137 00:07:37,540 --> 00:07:41,600 و پس از آن شما می توانید اکولایزر و یا تنظیم حجم را دارند. 138 00:07:41,600 --> 00:07:45,290 >> و ما یک راه خوب در دید هاسکل به نمایندگی از این مرحله 139 00:07:45,290 --> 00:07:48,810 ترتیب سنج با تمام همه چیز سرد مختلف در Haskell 140 00:07:48,810 --> 00:07:53,100 ما می توانیم با تولید انجام لیست ها و فیلتر بیش از لیست ها، 141 00:07:53,100 --> 00:07:56,060 نقشه برداری بیش از لیست، نقشه برداری توابع بیش از لیست. 142 00:07:56,060 --> 00:07:59,530 143 00:07:59,530 --> 00:08:00,760 و معذرت خواهی سریع است. 144 00:08:00,760 --> 00:08:05,300 این است که بسیار سریع و طرح بیش از حد سریع 145 00:08:05,300 --> 00:08:07,620 برخی از جنبه های از Haskell و Euterpea، 146 00:08:07,620 --> 00:08:11,760 است که یک دامنه خاص زبان های جاسازی شده نوشته شده است 147 00:08:11,760 --> 00:08:14,970 در Haskell برای انواع موسیقی. 148 00:08:14,970 --> 00:08:17,350 پس لطفا چک کردن کد آنلاین. 149 00:08:17,350 --> 00:08:22,404 آتش تا GHCI است، که گلاسکو هاسکل کامپایلر مترجم. 150 00:08:22,404 --> 00:08:24,320 و من انجام برخی از این در کمی 151 00:08:24,320 --> 00:08:25,880 بنابراین شما می توانید ببینید که چگونه آن را انجام داده. 152 00:08:25,880 --> 00:08:31,021 >> و این اجازه می دهد تا شما را به بار با the-- نحو روده بزرگ و پس از آن است 153 00:08:31,021 --> 00:08:31,520 فرمان. 154 00:08:31,520 --> 00:08:33,510 شما می توانید فایل های بارگذاری در. 155 00:08:33,510 --> 00:08:36,840 شما می توانید فهرست در آن فایل استفاده برای دیدن همه ی توابع است که 156 00:08:36,840 --> 00:08:39,169 در یک ماژول خاص وجود داشته باشد. 157 00:08:39,169 --> 00:08:43,850 و سپس به عنوان ما، انواع و نوع دید کلاس ها در Haskell بسیار مهم است، 158 00:08:43,850 --> 00:08:48,850 بنابراین شما همیشه می توانید به خصوص check-- اگر شما در حال کار در یک DSCL جدید 159 00:08:48,850 --> 00:08:51,600 مثل این، چه نوع موسیقی است؟ 160 00:08:51,600 --> 00:08:55,114 من در مورد راه عددی مطمئن شوید انواع در Haskell کار می کنند، 161 00:08:55,114 --> 00:08:56,530 اما من نمی دانم در مورد موسیقی. 162 00:08:56,530 --> 00:09:01,280 اما شما می توانید راه آنها کشف تعریف با استفاده از این نوع فرمان T یا 163 00:09:01,280 --> 00:09:04,577 و پس از آن خواستار در یک خاص تابع یا یک شی داده. 164 00:09:04,577 --> 00:09:05,410 CONNOR HARRIS: آره. 165 00:09:05,410 --> 00:09:09,820 اگر شما فکر می C و صدای جرنگ جرنگ hardass در مورد انواع بود، 166 00:09:09,820 --> 00:09:11,230 شما هیچ ایده ای در مورد هاسکل. 167 00:09:11,230 --> 00:09:14,230 چیز خوب در مورد هاسکل است که اگر شما می توانید کد خود را به کامپایل گرفتن 168 00:09:14,230 --> 00:09:16,790 و اگر نوع هاسکل چک، آن را احتمالا راست، 169 00:09:16,790 --> 00:09:18,675 به دلیل سیستم نوع بسیار سخت است. 170 00:09:18,675 --> 00:09:20,090 >> استفان KREWSON: آره. 171 00:09:20,090 --> 00:09:21,980 بنابراین من فقط می خواهم به through-- و دوباره، 172 00:09:21,980 --> 00:09:27,160 این انجام شده است نه آن justice-- چند از از ویژگی های هاسکل که حداقل 173 00:09:27,160 --> 00:09:31,780 به creators-- خود را و آن ایجاد شد در اواخر 1980s توسط یک دسته از مردم، 174 00:09:31,780 --> 00:09:34,610 کمیته ای از حدود 20 people-- فکر مهم بودند. 175 00:09:34,610 --> 00:09:36,850 و اولین چیزی که آنها ذکر شده در مقاله ای که 176 00:09:36,850 --> 00:09:41,890 توصیف پیدایش هاسکل بیش از 20 سال برای اولین بار و یا پس 177 00:09:41,890 --> 00:09:43,390 بود که آن را تنبل بود. 178 00:09:43,390 --> 00:09:44,990 پس چه معنی است؟ 179 00:09:44,990 --> 00:09:49,860 >> خب، به این معنی که ما به نوعی بیان، ما نیاز به ارزیابی آن. 180 00:09:49,860 --> 00:09:54,390 و Haskell این در یک پاسخ راه نیاز و یا راه های غیر سخت است. 181 00:09:54,390 --> 00:09:57,250 این است که اگر ما یک دسته از اجزای بیان ما، 182 00:09:57,250 --> 00:10:00,660 ما سعی می کنیم ارزیابی برای به تاخیر انداختن از آن جزء فرعی 183 00:10:00,660 --> 00:10:05,300 تا زمانی که مطلق آخرین minute-- است که تا زمانی که ما در واقع به آنها نیاز دارید. 184 00:10:05,300 --> 00:10:08,480 >> بنابراین این means-- است که واقعا سرد، به ویژه 185 00:10:08,480 --> 00:10:13,200 اگر ما در حال فکر کردن در مورد انتزاع یک ترتیب سنج گام های موسیقی است. 186 00:10:13,200 --> 00:10:16,740 شما آن را روشن، و شما شروع در حال اجرا یک گام sequence-- 187 00:10:16,740 --> 00:10:20,010 اگر شما تا به حال با یک درام کار machine-- و آن را فقط می رود برای همیشه. 188 00:10:20,010 --> 00:10:24,650 پس از آن می تواند واقعا خوب اگر ما می تواند تقلید که در Haskell. 189 00:10:24,650 --> 00:10:31,040 و ما می توانیم آن را با بی نهایت انجام ارزش ها، در لیست بی نهایت خاص است. 190 00:10:31,040 --> 00:10:35,860 آن را بسیار آسان به نوع لیست محدود در Haskell. 191 00:10:35,860 --> 00:10:39,230 شما فقط می تواند با استفاده از نحو پایین در اینجا، که در آن شما را ببینید 1 تا 3، 192 00:10:39,230 --> 00:10:42,440 حذف 3 1 نقطه نقطه، و که یک لیست بی نهایت است 193 00:10:42,440 --> 00:10:46,960 از تمام اعداد طبیعی گسترش در تا آنجا که شما می توانید تصور کنید. 194 00:10:46,960 --> 00:10:49,925 >> من می خواهم به شما معرفی مفهوم برابر حق دور. 195 00:10:49,925 --> 00:10:51,800 و دوباره، هدف از این سمینار نیست 196 00:10:51,800 --> 00:10:55,770 به چین در Haskell یاد بگیرند و یا توابع مرتبه بالاتر. 197 00:10:55,770 --> 00:10:59,640 اما من فقط می خواهم به معرفی آن را به را حس دقیق از عجیب و غریب 198 00:10:59,640 --> 00:11:03,700 Haskell است و چگونه قدرتمند آن است. 199 00:11:03,700 --> 00:11:08,000 و به طور خاص، ما قصد داریم به be-- هنگامی که ما انجام قطعات مختلف درام ما، 200 00:11:08,000 --> 00:11:12,790 ما در حال رفتن به دستکاری لیست اعداد، تاشو آنها بر روی یکدیگر. 201 00:11:12,790 --> 00:11:17,290 و برای انجام آن، ما با استفاده از نقشه ها و چین و چروک. 202 00:11:17,290 --> 00:11:21,770 >> یک انجمنی سمت راست وجود دارد برابر، که این یک حق است 203 00:11:21,770 --> 00:11:26,990 here-- 1 منهای مقدار، 2 منهای مقدار، 3 منهای 0. 204 00:11:26,990 --> 00:11:29,170 و نحو برای برابر، شما یک برابر را 205 00:11:29,170 --> 00:11:34,680 ارزش پایه و سپس یک operation-- در این مورد، افزودن یا تفریق. 206 00:11:34,680 --> 00:11:36,280 من هر دو مورد نشان داده ایم. 207 00:11:36,280 --> 00:11:41,760 و پس از آن یک باتری وجود دارد که تجمع بیش از کل لیست، 208 00:11:41,760 --> 00:11:46,330 استفاده از آن به همراه اپراتور یا منفی، و سپس جمع آوری آن است. 209 00:11:46,330 --> 00:11:52,680 بنابراین این the-- خواهد بود اگر آن بود به نام با R برابر به علاوه از 0، با شروع با 0، 210 00:11:52,680 --> 00:11:54,720 ما پس از آن که خلاصه همه اعداد در این لیست. 211 00:11:54,720 --> 00:11:57,134 و که یک لیست از 1 تا 3 است. 212 00:11:57,134 --> 00:12:00,050 CONNOR HARRIS: پس به آن را یکی دیگر از راه، برابر R سه آرگومان می گیرد. 213 00:12:00,050 --> 00:12:02,540 یک تابع وجود دارد که خود دو آرگومان می گیرد، 214 00:12:02,540 --> 00:12:05,400 پس از آن یک ارزش استارت وجود دارد، و یک لیست از ارزش وجود دارد. 215 00:12:05,400 --> 00:12:08,570 و آنچه شما انجام است شما را ارزش استارتر، ارزش اول، 216 00:12:08,570 --> 00:12:09,850 قرار داده و آنها را به تابع. 217 00:12:09,850 --> 00:12:11,607 چه چیزی شما را از دریافت، را که، غذایی که 218 00:12:11,607 --> 00:12:13,940 به تابع از مقدار دوم، آنچه که شما از دریافت، 219 00:12:13,940 --> 00:12:16,690 را که، تغذیه که به تابع از ارزش سوم. 220 00:12:16,690 --> 00:12:18,740 و پس از آن اگر شما به پایین این لیست کامل این راه، 221 00:12:18,740 --> 00:12:22,970 شما در حال رفتن به نهایت برخی از ارزش منحصر به فرد که 222 00:12:22,970 --> 00:12:25,720 از همان نوع از آنچه شما آغاز شده با و از همان نوع 223 00:12:25,720 --> 00:12:29,147 به عنوان چیزهایی در لیست، و سپس که در نتیجه بازگشت برابر R. است 224 00:12:29,147 --> 00:12:31,980 استفان KREWSON: پس به طور خاص این توابع مرتبه بالاتر، 225 00:12:31,980 --> 00:12:34,460 چرا که آنها در حال گرفتن یکی دیگر از تابع به عنوان یکی از استدلال. 226 00:12:34,460 --> 00:12:34,770 >> CONNOR HARRIS: آره. 227 00:12:34,770 --> 00:12:37,820 اگر شما خاص دیگر استفاده می شود languages-- من می دانم R، [نامفهوم] 228 00:12:37,820 --> 00:12:41,510 زبان، به نام کاهش. 229 00:12:41,510 --> 00:12:45,460 شما ممکن است عملکرد مشابهی داشته در زبان های دیگر، فقط به نام 230 00:12:45,460 --> 00:12:48,160 چیزهای مختلف. 231 00:12:48,160 --> 00:12:50,680 >> استفان KREWSON: و چه خوب در مورد برابر R 232 00:12:50,680 --> 00:12:53,880 در این مثال که برابر است R می توانید با لیست بی نهایت کار می کنند. 233 00:12:53,880 --> 00:12:59,490 بنابراین در این پایین، این P5 در حال تولید یک یادداشت ها که 234 00:12:59,490 --> 00:13:03,120 در در ترتیب سنج گام برای تبدیل برخی از بخش درام، بخشی درام پنجم، 235 00:13:03,120 --> 00:13:05,480 و شاید آن را یک بارتو است درام و یا چیزی. 236 00:13:05,480 --> 00:13:09,719 و این است که به عمد راه مبهم نوشتن این مقاله، 237 00:13:09,719 --> 00:13:11,510 اما آن را سرگرم کننده است، چرا که آن را نشان می زیادی 238 00:13:11,510 --> 00:13:14,460 از همه چیز در مورد Haskell و Euterpea. 239 00:13:14,460 --> 00:13:20,650 >> بنابراین برابر R از این روده بزرگ colon-- است فقط یک اپراتور است که همه چیز را هل می دهد 240 00:13:20,650 --> 00:13:25,700 با هم در یک list-- نام در خالی لیست است که فقط براکت خالی است. 241 00:13:25,700 --> 00:13:28,250 و من خواستار است که در این لیست بی نهایت است. 242 00:13:28,250 --> 00:13:31,570 این است که در واقع دو لیست هم اضافه شده است در اینجا. 243 00:13:31,570 --> 00:13:37,150 لیست 1 کاما 6 نقطه نقطه 1، 6، 11، 16 است. 244 00:13:37,150 --> 00:13:39,750 بنابراین در Haskell-- چند شخصیت ها، شما 245 00:13:39,750 --> 00:13:42,420 می توانید کل تولید دنباله ای از اعداد 246 00:13:42,420 --> 00:13:46,240 که پنج عدد از هم جدا هستند کشش در به بی نهایت. 247 00:13:46,240 --> 00:13:49,860 و من به آن prepend کنید این list-- کمی کوتاه تر 248 00:13:49,860 --> 00:13:54,370 3، 8، 21-- فقط به شما نشان دهد چگونه شما می توانید لیست الحاق. 249 00:13:54,370 --> 00:13:55,790 >> و بعد من در خود را تا زده. 250 00:13:55,790 --> 00:14:01,510 و این پایان می رسد تا فقط یک نوع از عملیات هویت، اما آن را بی نهایت است. 251 00:14:01,510 --> 00:14:06,070 و برابر R می توانید انجام دهید، چرا که آن تنبلی ارزیابی، همانطور که در بالا. 252 00:14:06,070 --> 00:14:10,582 اگر ما یک 1 و 2 و 3، ما می توانیم فقط در پرانتز قرار دادن کل بقیه از آن. 253 00:14:10,582 --> 00:14:12,290 که نمی خواهد برای کار منفی یا به علاوه، اما آن را 254 00:14:12,290 --> 00:14:17,760 برای این کار می کنند روده بزرگ عملیات هویت در لیست. 255 00:14:17,760 --> 00:14:24,620 >> پس چگونه ما عملا استفاده که اگر ما یک لیست بی نهایت طولانی از همه چیز؟ 256 00:14:24,620 --> 00:14:26,500 خب، هاسکل فراهم می کند بسیاری از functions-- 257 00:14:26,500 --> 00:14:29,450 و نگاه های بیشتری را به این در time-- خود را مانند را 258 00:14:29,450 --> 00:14:32,200 که می گوید: خوب، ما تولید این لیست بی نهایت، 259 00:14:32,200 --> 00:14:35,950 اما ما فقط رفتن را به برخی از تعداد آن و در این case-- 260 00:14:35,950 --> 00:14:38,410 ما این بعد در دید code-- ماشین درام ما 261 00:14:38,410 --> 00:14:43,740 GM فقط نوعی از جهانی است متغیر برای تعداد مراحل 262 00:14:43,740 --> 00:14:44,610 در ترتیب سنج. 263 00:14:44,610 --> 00:14:47,630 در رول ماشین آلات من شما نشان داد، که به طور معمول 16، 264 00:14:47,630 --> 00:14:51,475 اما من آن را با 32 اجرا شده است. 265 00:14:51,475 --> 00:14:54,470 این واقعا مهم نیست. 266 00:14:54,470 --> 00:15:00,230 >> هاسکل است خالص، پس از آن تا قوی استاتیک که Connor اشاره به. 267 00:15:00,230 --> 00:15:03,220 بنابراین توابع ریاضی را در sense-- 268 00:15:03,220 --> 00:15:06,600 آنها بیشتر ریاضی هستید که آنها در حال تضمین 269 00:15:06,600 --> 00:15:11,530 برای دسترسی به و یا تغییر هر نوع متغیر و یا انجام ورودی یا خروجی. 270 00:15:11,530 --> 00:15:14,420 بنابراین اگر شما یک تابع، آن را قطعی. 271 00:15:14,420 --> 00:15:17,400 این همیشه همان بازگشت ارزش در دولت از برنامه 272 00:15:17,400 --> 00:15:19,310 و یا باقی می ماند همان. 273 00:15:19,310 --> 00:15:22,940 هستند، وجود دارد البته استثنا تکین این، اما فراتر از محدوده ما است. 274 00:15:22,940 --> 00:15:23,900 >> CONNOR HARRIS: آره. 275 00:15:23,900 --> 00:15:26,946 این بدان معنی است این است که وجود دارد چند مهم [نامفهوم] 276 00:15:26,946 --> 00:15:27,820 عواقب ناشی از این. 277 00:15:27,820 --> 00:15:30,940 یکی این است که آن را بسیار آسان به موازی سازی برنامه های هاسکل. 278 00:15:30,940 --> 00:15:32,773 چرا که اگر شما، می گویند، یک تابع از آن 279 00:15:32,773 --> 00:15:36,064 نیاز به یک میلیون ارزش عمل کند، اگر شما می دانید که تابع همیشه 280 00:15:36,064 --> 00:15:39,280 را از ارزش همان اگر شما در یک value-- خاص تغذیه 281 00:15:39,280 --> 00:15:43,055 اگر شما [نامفهوم] F، از مجموع 1 هستید، F از 2، آنگاه f از 3 یا whatnot-- F، از مجموع 1 282 00:15:43,055 --> 00:15:45,180 رفتن به ارسال به خارج به یک فایل و یا انجام کاری 283 00:15:45,180 --> 00:15:46,850 که خواهد شد که ارزش F2 را تغییر دهد. 284 00:15:46,850 --> 00:15:50,220 شما فقط می توانید تقسیم کردن این تابع به یک میلیون دستگاه های مختلف و یا یک میلیون 285 00:15:50,220 --> 00:15:54,720 موضوعات مختلف و یا هر چیز دیگری، دریافت تمام پاسخ های تماس، 286 00:15:54,720 --> 00:15:56,900 دریافت تمام مقادیر بازگشتی تماس، و سپس از آن است. 287 00:15:56,900 --> 00:15:59,780 بنابراین بسیار آسان برای موازی سازی است. 288 00:15:59,780 --> 00:16:03,140 >> حرکت نزولی که ورودی است و خروجی ویژه 289 00:16:03,140 --> 00:16:05,720 جا به سیستم نوع در راه بسیار پیچیده است. 290 00:16:05,720 --> 00:16:09,010 ما نمی خواهد به سمت راست بروید که در حال حاضر، اما من شما را تشویق به در نگاه برخی از منابع 291 00:16:09,010 --> 00:16:11,175 آنلاین اگر می خواهید در مورد آن یاد بگیرند. 292 00:16:11,175 --> 00:16:13,960 293 00:16:13,960 --> 00:16:16,550 >> استفان KREWSON: پس نوع classes-- و این 294 00:16:16,550 --> 00:16:21,610 کلاس was-- از انواع برای حل اختراع شد 295 00:16:21,610 --> 00:16:24,160 مشکل از Overload کردن عملگرها. 296 00:16:24,160 --> 00:16:27,590 بنابراین ما می خواستیم به برابری بین انواع مختلف از همه چیز. 297 00:16:27,590 --> 00:16:31,040 البته، ما فکر می کنم of-- می تواند برابری میان انواع عددی 298 00:16:31,040 --> 00:16:34,720 بسیار آسان است به فکر کردن در مورد، اما چه در مورد برابری بین لیست؟ 299 00:16:34,720 --> 00:16:37,610 چه در مورد برابری بین درخت ساختمان داده پای؟ 300 00:16:37,610 --> 00:16:43,130 و این است که همه ممکن است در هاسکل به دلیل نوع کلاس. 301 00:16:43,130 --> 00:16:48,000 >> بنابراین اگر یک type-- داده های خاص تعریف می کنید و در اینجا، این رزین موسیقی می باشد. 302 00:16:48,000 --> 00:16:50,960 ما در نهایت در حال گرفتن به برخی از موسیقی کامپیوتر است. 303 00:16:50,960 --> 00:16:57,420 بنابراین ما باید C، C تیز، و به همین ترتیب، و غیره. 304 00:16:57,420 --> 00:17:01,080 آنها به یک دسته از تعلق کلاس های نوع های مختلف. 305 00:17:01,080 --> 00:17:03,510 EQ-- آنها به طبقه نوع EQ تعلق دارند. 306 00:17:03,510 --> 00:17:06,780 این بدان معناست که آنها پشتیبانی عملیات برابری است. 307 00:17:06,780 --> 00:17:12,650 بنابراین شما می توانید که آیا یک ارزیابی دنباله ای از شکلهای هندسی اولیه موسیقی 308 00:17:12,650 --> 00:17:15,400 همان یک متفاوت است. 309 00:17:15,400 --> 00:17:17,280 >> آنها به طبقه ترتیبی تعلق دارند. 310 00:17:17,280 --> 00:17:19,479 این بدان معناست که یک سفارش به این وجود دارد. 311 00:17:19,479 --> 00:17:27,670 D می آید پس از C. C تیز پس از C است. 312 00:17:27,670 --> 00:17:29,840 آنها به طبقه تعلق نشان می دهد، که به معنی آنها می توانید 313 00:17:29,840 --> 00:17:33,000 به یک کنسول یا ترمینال چاپ شده است. 314 00:17:33,000 --> 00:17:36,090 آنها به تعلق کلاس برشمرده که 315 00:17:36,090 --> 00:17:39,770 بدان معنی است که حتی اگر این شخصیت ها هستند، 316 00:17:39,770 --> 00:17:45,340 آنها یک عددی اساسی نمایندگی از 0 شروع می 317 00:17:45,340 --> 00:17:48,960 و رفتن از طریق این حال بسیاری از چیزهایی هستند در اینجا، 20 یا، 318 00:17:48,960 --> 00:17:51,770 یا 30 یا 40، شاید. 319 00:17:51,770 --> 00:17:54,259 >> CONNOR HARRIS: و هنگامی که ما یک نوع داده 320 00:17:54,259 --> 00:17:57,050 که derives-- با آن کلمه کلیدی "deriving--" یک کلاس نوع خاصی، 321 00:17:57,050 --> 00:18:01,160 به این معنی که کامپایلر سعی خواهد کرد برای ساخت چیزی به صورت خودکار. 322 00:18:01,160 --> 00:18:05,120 بنابراین شاید شما می خواهید تعریف کیفیت متفاوت. 323 00:18:05,120 --> 00:18:09,450 شما می خواهید به تعریف C تیز به D تخت برابر، برای مثال. 324 00:18:09,450 --> 00:18:11,560 با این ساخت و ساز در اینجا، من فکر نمی کنم C تیز 325 00:18:11,560 --> 00:18:14,940 و مسطح D برابر خواهد بود، چرا کامپایلر به طور خودکار 326 00:18:14,940 --> 00:18:19,670 می گویند هر مقدار مختلف ممکن است متمایز از هر دیگر است. 327 00:18:19,670 --> 00:18:22,930 >> بنابراین ممکن است به نادیده گرفتن پیاده سازی پیش فرض 328 00:18:22,930 --> 00:18:25,730 از این نوع از کلاس. 329 00:18:25,730 --> 00:18:28,640 دوباره، در مرجع اگر نگاه می خواهید در مورد آن یاد بگیرند. 330 00:18:28,640 --> 00:18:31,767 331 00:18:31,767 --> 00:18:33,600 استفان KREWSON: و در اینجا، در واقع، این را 332 00:18:33,600 --> 00:18:36,930 برای زمانی که بعد از کد ما مفید باشد. 333 00:18:36,930 --> 00:18:42,150 ما می بینیم برخی از اپراتورهای میانوند برای ترکیب پی در پی، 334 00:18:42,150 --> 00:18:46,570 به موازات، و غیره چهارم، این علامت + و نشانه های برابر 335 00:18:46,570 --> 00:18:48,620 احاطه شده توسط دو نقطه دارند. 336 00:18:48,620 --> 00:18:53,330 این بدان معناست که ما می توانیم این بازی های مختلف شکلهای هندسی اولیه موسیقی یکی پس از دیگری. 337 00:18:53,330 --> 00:18:54,590 که ترکیب متوالی است. 338 00:18:54,590 --> 00:18:57,170 >> یا ما می توانیم آنها را در بازی موازی در همان زمان. 339 00:18:57,170 --> 00:19:05,100 بنابراین من می توانید یک مقدار موسیقی، و سپس این برابر و روده های بزرگ، 340 00:19:05,100 --> 00:19:09,669 این نرم افزار ابزاری اپراتور موازات، و بازی آنها را به عنوان یک نوع وتر. 341 00:19:09,669 --> 00:19:11,460 و ما قصد داریم به استفاده از این زمانی که ما ترکیب 342 00:19:11,460 --> 00:19:15,080 بخشی درام با ما کمی آهنگ فرر ژاک 343 00:19:15,080 --> 00:19:19,460 به بازی این دو توالی از ارزش موسیقی در همان زمان. 344 00:19:19,460 --> 00:19:24,520 345 00:19:24,520 --> 00:19:29,250 >> طننج کاری is-- آخرین نام از هسکل کاری که 346 00:19:29,250 --> 00:19:31,850 تصویر هاسکل است پس از نام. 347 00:19:31,850 --> 00:19:34,330 و این اجازه می دهد تا ما ظرافت خوب زمانی که ما 348 00:19:34,330 --> 00:19:36,880 نوشتن تمام این مختلف توابع و یا فیلتر است که ما 349 00:19:36,880 --> 00:19:39,330 رفتن به نقشه برداری بیش از لیست ما است. 350 00:19:39,330 --> 00:19:42,810 یک تابع از دو arguments-- F x و y-- 351 00:19:42,810 --> 00:19:46,630 می تواند به عنوان نمایندگی F از X به Y استفاده می شود. 352 00:19:46,630 --> 00:19:49,800 پس از آن یک تابع از این یک آرگومان که باز می گرداند 353 00:19:49,800 --> 00:19:51,240 یکی دیگر از عملکرد یک آرگومان. 354 00:19:51,240 --> 00:19:56,962 بنابراین این بدان معناست که ما می توانید یک نقشه تابع f از X Y بیش از است. 355 00:19:56,962 --> 00:19:58,920 CONNOR HARRIS: می خواهم به یک مثال از این؟ 356 00:19:58,920 --> 00:19:59,836 استفان KREWSON: آره. 357 00:19:59,836 --> 00:20:05,390 من یک مثال در اینجا از برخی از چیزهایی که ما ارسال خواهد شد. 358 00:20:05,390 --> 00:20:10,500 بنابراین تکرار 2-- خوب، تکرار خواهد 359 00:20:10,500 --> 00:20:13,040 یک مقدار است که چگونه بسیاری از بار به تکرار چیزی، 360 00:20:13,040 --> 00:20:16,690 و سپس آن را به یک value-- را معمولا یک لیست و یا چیزی. 361 00:20:16,690 --> 00:20:23,450 بنابراین در اینجا ما از نقشه کشی هستید تکرار بیش از 2 لیست دیگر. 362 00:20:23,450 --> 00:20:27,440 >> بنابراین اگر ما نقشه تکرار 2، اگر ما تکرار 2 اعمال می شود 363 00:20:27,440 --> 00:20:31,890 به عنصر اول این list-- و این لیست از phrases-- موسیقی می باشد 364 00:20:31,890 --> 00:20:37,650 دو تن از تولید "شما sleeping--" بنابراین شما خواب هستند، شما خواب. 365 00:20:37,650 --> 00:20:40,040 بنابراین در حال حاضر ما دو. 366 00:20:40,040 --> 00:20:42,570 اما تکرار طول می کشد دو استدلال، اما از آنجا که ما 367 00:20:42,570 --> 00:20:47,100 طننج و سپس نقشه برداری، ما می توانیم تکرار 2 نشان 368 00:20:47,100 --> 00:20:52,310 عنوان داشتن شده است به عنوان یک تابع از بازگشت یکی argument-- فقط تکرار دو بار. 369 00:20:52,310 --> 00:20:57,010 و سپس ما در حال استفاده از که به هر عنصر از این لیستی از عبارات. 370 00:20:57,010 --> 00:21:01,900 >> و چسبانده Haskell است عملیات برای تراز وسط یک لیست. 371 00:21:01,900 --> 00:21:04,400 از آنجا که تکرار 2 تولید یک لیست از لیست. 372 00:21:04,400 --> 00:21:06,660 و این این شکل متوسط ​​در اینجا است. 373 00:21:06,660 --> 00:21:10,365 و به این ترتیب پس ما می توانیم چسبانده و یا پهن که دو بار. 374 00:21:10,365 --> 00:21:12,240 CONNOR HARRIS: A ساده نمونه ای از پرداخت، 375 00:21:12,240 --> 00:21:15,323 اگر شما می خواهم like-- تصور F فقط یک تابع ضرب که طول می کشد دو 376 00:21:15,323 --> 00:21:16,840 بحث ها و محصول خود را باز می گرداند. 377 00:21:16,840 --> 00:21:19,320 بنابراین اگر شما یک F 4 5، آن را 20. 378 00:21:19,320 --> 00:21:22,670 اما شما می توانید از این به عنوان فکر می کنم also-- شما یک تابع f 4 379 00:21:22,670 --> 00:21:25,560 که یک استدلال و بازده طول می کشد چهار بار این argument-- فقط 380 00:21:25,560 --> 00:21:27,870 نرم افزار های جزئی که فقط یک آرگومان 4. 381 00:21:27,870 --> 00:21:31,182 و اگر شما از 4 F تغذیه 5، که به شما 20 است. 382 00:21:31,182 --> 00:21:32,890 و این یک ساده به عنوان مثال از طننج. 383 00:21:32,890 --> 00:21:34,473 این معمولا یکی از آنهایی که کتاب درسی. 384 00:21:34,473 --> 00:21:38,860 385 00:21:38,860 --> 00:21:42,110 >> استفان KREWSON: لامبدا عبارت و یا توابع بی نام 386 00:21:42,110 --> 00:21:47,330 یکی دیگر از مشخصه هاسکل. 387 00:21:47,330 --> 00:21:51,242 بنابراین اگر ما نیاز به شلاق تا عملکرد کمی تکرار زندگی، 388 00:21:51,242 --> 00:21:52,950 اما می گویند آن را در نیست کتابخانه استاندارد، 389 00:21:52,950 --> 00:21:56,150 ما می توانیم یک نحو استفاده کنید شبیه به زیر است. 390 00:21:56,150 --> 00:21:58,730 و ما بیش از این نسیم. 391 00:21:58,730 --> 00:22:02,160 یک چیزی که شما یک مقدار زیادی از در دید ماشین درام است که ما در حال برقراری تماس 392 00:22:02,160 --> 00:22:05,790 به چیزی به نام فیلتر، که مثل قبل، 393 00:22:05,790 --> 00:22:08,185 نقشه ای از یک تابع است بیش از یک لیست، اما آن را 394 00:22:08,185 --> 00:22:10,260 نقشه ای از یک تابع بولی. 395 00:22:10,260 --> 00:22:13,390 >> بنابراین ما باید در اینجا یک مثال از A یک ناشناس 396 00:22:13,390 --> 00:22:19,150 تابع بولی تعریف شده است که فقط چند ارزش طول می کشد. 397 00:22:19,150 --> 00:22:22,990 این صرفا صحبت نمی یک تابع بی نام. 398 00:22:22,990 --> 00:22:25,850 اما این تعریف با آن نحو برای اختصار، 399 00:22:25,850 --> 00:22:28,007 و این فقط طول می کشد ایکس ماژول n-- 400 00:22:28,007 --> 00:22:28,840 CONNOR HARRIS: آره. 401 00:22:28,840 --> 00:22:31,330 بنابراین f یک تابع است دو آرگومان n و p 402 00:22:31,330 --> 00:22:35,440 که یک تابع است که خود را می گرداند یک تابع از یک آرگومان، یعنی x است. 403 00:22:35,440 --> 00:22:38,815 404 00:22:38,815 --> 00:22:40,690 استفان KREWSON: من اپراتورهای میانوند ذکر شده است. 405 00:22:40,690 --> 00:22:42,642 اپراتورهای میانوند چیست؟ 406 00:22:42,642 --> 00:22:45,710 خب، اپراتورهای میانوند هستند راه طبیعی ما نمایندگی عملیات، 407 00:22:45,710 --> 00:22:49,910 می گویند، در mathematics-- 2 PLUS 2 به جای اپراتور همراه 408 00:22:49,910 --> 00:22:51,202 و پس از آن دو استدلال 2 و 2. 409 00:22:51,202 --> 00:22:53,701 CONNOR HARRIS: آن را به نام نشانه گذاری معکوس لهستانی است که 410 00:22:53,701 --> 00:22:55,330 یک اصطلاح من شک هر یک از شما را می دانیم. 411 00:22:55,330 --> 00:22:56,288 >> استفان KREWSON: درست است. 412 00:22:56,288 --> 00:22:58,290 نماد لهستانی یا پیشوند معکوس می باشد. 413 00:22:58,290 --> 00:23:01,412 اما تصمیم به هاسکل استفاده از عملگرهای میانوند. 414 00:23:01,412 --> 00:23:03,120 بنابراین چندین هستند آنهایی که سفارشی که 415 00:23:03,120 --> 00:23:07,770 برای تعریف Euterpea DSCL در Haskell. 416 00:23:07,770 --> 00:23:10,730 بنابراین این ترکیب متوالی بود. 417 00:23:10,730 --> 00:23:16,340 این ترکیب موازی بود، و این بود کوتاه کردن ترکیب موازی. 418 00:23:16,340 --> 00:23:18,710 و ما باید که با ماشین درام ما، 419 00:23:18,710 --> 00:23:22,640 چون ما آخرین استفاده اپراتور که تاپل کمی وجود دارد 420 00:23:22,640 --> 00:23:26,330 بازی ماشین درام همراه با آهنگ فرر ژاک ما است. 421 00:23:26,330 --> 00:23:28,650 و ماشین درام ما این است که رفتن به بی نهایت است. 422 00:23:28,650 --> 00:23:30,920 این فقط برای همیشه لطفا برای بازی می کند. 423 00:23:30,920 --> 00:23:32,692 اما ترانه فرر ژاک است. 424 00:23:32,692 --> 00:23:33,510 آن است که طولانی نیست. 425 00:23:33,510 --> 00:23:36,610 این چند میله تنها. 426 00:23:36,610 --> 00:23:43,030 بنابراین ما باید برای جلوگیری از ماشین درام به عنوان به زودی به عنوان ارزش موسیقی کوتاه تر می آید 427 00:23:43,030 --> 00:23:43,700 به پایان برسد. 428 00:23:43,700 --> 00:23:46,980 و اپراتور infixed فوق العاده با مفید است. 429 00:23:46,980 --> 00:23:50,090 >> و نماد میانوند مانند این نوع از خوب، 430 00:23:50,090 --> 00:23:57,095 چون می گویند شما باید یک تابع مانند نقل قول، می دهد که تقسیم عدد صحیح 431 00:23:57,095 --> 00:24:01,010 از x با چیزی else-- با عرض پوزش، که باید A و B است. 432 00:24:01,010 --> 00:24:04,740 شما می توانید آن را به عنوان یک نقل قول از ب ارسال. 433 00:24:04,740 --> 00:24:09,670 بنابراین اگر شما عنصر put-- است یک مثال دیگر از این. 434 00:24:09,670 --> 00:24:14,730 X عنصر در برخی از لیست، اگر شما آن را در Backticks، شما می توانید از آن استفاده کنید. 435 00:24:14,730 --> 00:24:20,400 حتی اگر آن را یک نماد نیست مانند به اضافه یا منهای یا بار، 436 00:24:20,400 --> 00:24:24,630 شما می توانید نام یک استفاده تابع مانند که در Backticks 437 00:24:24,630 --> 00:24:27,045 به عنوان عملگر میانوند است که بسیار سرد است. 438 00:24:27,045 --> 00:24:29,670 CONNOR HARRIS: باز هم، این است همه قند فقط نحوی، واقعا. 439 00:24:29,670 --> 00:24:32,310 آن هسته اصلی زبان تاثیر نمی گذارد. 440 00:24:32,310 --> 00:24:37,440 >> استفان KREWSON: بنابراین ما در اینجا مشاهده کنید برای آخرین عبارت از آهنگ فرر ژاک ما، 441 00:24:37,440 --> 00:24:45,740 من بازی برخی از آکورد کم و یا سوم با استفاده از ترکیب موازی 442 00:24:45,740 --> 00:24:46,240 اپراتور. 443 00:24:46,240 --> 00:24:50,680 444 00:24:50,680 --> 00:24:54,950 این یکی دیگر از راه گفت: برخی از است از آنچه که ما تنها شده ام گفت. 445 00:24:54,950 --> 00:24:59,986 بنابراین شما می توانید توابع نقشه یک استدلال بیش از لیست. 446 00:24:59,986 --> 00:25:02,860 CONNOR HARRIS: باز هم، مراجع برای کتاب های درسی مقدماتی Haskell-- 447 00:25:02,860 --> 00:25:04,680 همه از این در آن است. 448 00:25:04,680 --> 00:25:07,790 >> استفان KREWSON: بنابراین در اینجا خیلی خط کلیدی ترتیب سنج گام را 449 00:25:07,790 --> 00:25:12,820 ما یک با استفاده از نگاه میکنم درک لیست. 450 00:25:12,820 --> 00:25:17,810 و ما در اینجا دید که عنصر در ثابت اپراتور در نقل قول تماس. 451 00:25:17,810 --> 00:25:23,030 بنابراین اگر x یک عنصر از لیست است X است، پس از آن ما تماس بگیرید تا توابع پرک. 452 00:25:23,030 --> 00:25:25,100 بنابراین پرک فقط یک تابع سازهای کوبه ای است. 453 00:25:25,100 --> 00:25:30,200 طول می کشد برخی P ارزش است که بخشی از مجموعه محدود از همه 454 00:25:30,200 --> 00:25:35,310 برای تلفن های موبایل کوبه ای مختلف که ما در یک اسلاید قبلی را دیدم، 455 00:25:35,310 --> 00:25:38,840 و سپس آن را می دهد که مدت زمان یک چهارم توجه داشته باشید. 456 00:25:38,840 --> 00:25:43,190 دیگری آن را آن را می دهد QNR و QNR فقط یک استراحت سه ماهه توجه داشته است. 457 00:25:43,190 --> 00:25:44,970 >> پس این است که ایجاد چیزی خوب. 458 00:25:44,970 --> 00:25:52,110 ما یک لیست از عناصر، و ما بیش از برخی از لیست ها از یک حلقه خواهید 459 00:25:52,110 --> 00:25:54,540 به ارزش حداکثر ترتیب سنج گام ما است. 460 00:25:54,540 --> 00:25:58,290 و هنگامی که ما در یک من خاص هستید که لیستی از یکی به ارزش حداکثر، 461 00:25:58,290 --> 00:26:02,970 در صورتی که من عضو این است مجموعه ای در این تابع ایجاد شده، 462 00:26:02,970 --> 00:26:06,040 خب، پس ما آن را روشن توجه داشته باشید به یک سازهای کوبه ای. 463 00:26:06,040 --> 00:26:10,960 در غیر این صورت، ما فقط بازی استراحت، که است که می گویند، ما فقط سکوت. 464 00:26:10,960 --> 00:26:16,050 و ما در اینجا می توانید ببینید که در این لیست نحو درک، 465 00:26:16,050 --> 00:26:20,030 X است که توسط این جمعیت لیست یک ساخته 466 00:26:20,030 --> 00:26:22,462 به اندازه جهانی ترتیب سنج. 467 00:26:22,462 --> 00:26:23,295 CONNOR HARRIS: آره. 468 00:26:23,295 --> 00:26:26,340 نحو اساسی برای یابی لیست است 469 00:26:26,340 --> 00:26:30,810 براکت، ارزش شامل برخی از متغیرهای، بار، 470 00:26:30,810 --> 00:26:34,260 مقادیر ممکن از متغیرهای خود، براکت بسته شده است. 471 00:26:34,260 --> 00:26:38,545 و اگر شما نماد سازنده مجموعه انجام داده ام در هر نوع از کلاس ریاضیات، 472 00:26:38,545 --> 00:26:45,999 شما ممکن است 2N چنین مجموعه ای که n یا N است در Z است. 473 00:26:45,999 --> 00:26:48,290 مشابه thing-- این نماد به معنای مطرح 474 00:26:48,290 --> 00:26:49,630 که نماد ریاضی. 475 00:26:49,630 --> 00:26:51,880 استفان KREWSON: و شما می توانید اعمال گزاره های متعدد 476 00:26:51,880 --> 00:26:56,250 و فیلترهای متعدد را در یک لیست درک است که کاملا خوب است. 477 00:26:56,250 --> 00:27:01,800 جبری ما types-- نمی معطل طولانی در اینجا. 478 00:27:01,800 --> 00:27:04,840 یک مفهوم خوب در وجود ندارد هاسکل و یا خوب است، مفهوم آشکار 479 00:27:04,840 --> 00:27:10,720 از چگونه به، می گویند، یک پیش فرض پارامتر به یک تابع و یا چیزی. 480 00:27:10,720 --> 00:27:13,370 در پایتون، این است کاملا آسان است. 481 00:27:13,370 --> 00:27:18,460 شما فقط می توانید می گویند با برابر در اعلامیه از تابع، 482 00:27:18,460 --> 00:27:21,420 یک مقدار پیش فرض در مورد هیچ کدام عرضه شده است. 483 00:27:21,420 --> 00:27:27,010 >> در Haskell، شما می توانید شاید استفاده شاید شاید تایپ کنید، 484 00:27:27,010 --> 00:27:32,190 که طول می کشد یا چیزی و یا یک مقدار از نوع فقط. 485 00:27:32,190 --> 00:27:38,630 بنابراین ما این بهره برداری در ماشین درام به ما اجازه می دهد به حجم اختیاری 486 00:27:38,630 --> 00:27:40,730 پارامترهای به هر یک از قطعات درام. 487 00:27:40,730 --> 00:27:46,160 488 00:27:46,160 --> 00:27:54,680 به طوری که ما می دهد یک راه داشتن EQ و یا یک حجم بر روی یک کانال خاص است. 489 00:27:54,680 --> 00:27:56,440 >> CONNOR هریس: در دیگر نمونه های هاسکل، 490 00:27:56,440 --> 00:28:00,450 شما ممکن است ببینید شاید برای استفاده توابع است که ممکن است شکست بخورد. 491 00:28:00,450 --> 00:28:03,470 این یکی از شایع است. 492 00:28:03,470 --> 00:28:07,010 >> استفان KREWSON: و شما می توانید عرضه برخی از پیام خطا به عنوان یک پیش فرض است. 493 00:28:07,010 --> 00:28:11,020 و این به هنگام شما در حال انجام I / O در Haskell. 494 00:28:11,020 --> 00:28:12,044 است که می تواند کلاهبرداری. 495 00:28:12,044 --> 00:28:13,960 CONNOR HARRIS: یا برای یک به عنوان مثال مشابه، فکر می کنم 496 00:28:13,960 --> 00:28:17,460 از یک تابع است که شامل بخش از یک پارامتر که ممکن است 0. 497 00:28:17,460 --> 00:28:20,020 و تابع می تواند بازگشت شاید هر چیز دیگری. 498 00:28:20,020 --> 00:28:22,802 بنابراین اگر تقسیم بندی وجود ندارد که توسط 0، آن را فقط هر چه خواهد گشت. 499 00:28:22,802 --> 00:28:25,010 و اگر تقسیم وجود دارد توسط 0، آن را چیزی بازگشت 500 00:28:25,010 --> 00:28:26,910 به عنوان یک راه سیگنالینگ خطا. 501 00:28:26,910 --> 00:28:30,330 از آنجا که یکی از پیامدهای تایپ کردن بسیار دقیق زبان با Haskell 502 00:28:30,330 --> 00:28:34,100 است که هیچ real-- وجود دارد بی دست و پا می استثنا، در واقع، 503 00:28:34,100 --> 00:28:36,160 رفع خطا بی دست و پا است. 504 00:28:36,160 --> 00:28:39,440 و این یکی بسیار است راه معمول انجام آن است. 505 00:28:39,440 --> 00:28:42,990 >> استفان KREWSON: بنابراین در حال حاضر ما به چیز دیگری که ذهن خم 506 00:28:42,990 --> 00:28:49,160 درباره هاسکل، الگوی است که تطبیق و تابع تعاریف. 507 00:28:49,160 --> 00:28:53,390 من شما را در آخرین اسلاید نشان داد اعلامیه دنباله گام 508 00:28:53,390 --> 00:28:58,170 تابع، که در زمان شاید ارزش، پس از آن یک int، سپس یک لیست از نوع داده int، 509 00:28:58,170 --> 00:29:03,850 پس از آن یک دنباله از گرداند ارزش موسیقی وجود دارد مشروح 510 00:29:03,850 --> 00:29:05,375 با هر دو زمین و حجم. 511 00:29:05,375 --> 00:29:08,030 512 00:29:08,030 --> 00:29:11,820 >> بنابراین کسانی که سه آرگومان می تواند الگوی همسان در صورت زیر است. 513 00:29:11,820 --> 00:29:16,660 و ما همیشه می خواهید مطمئن شوید به انجام یک مورد پایه و یا مورد خروج اولین. 514 00:29:16,660 --> 00:29:19,690 و این زیرین فقط می توانید تفسیر شود 515 00:29:19,690 --> 00:29:22,340 به معنی هر گونه ارزش است که وجود دارد. 516 00:29:22,340 --> 00:29:26,580 بنابراین اگر ما یک تماس به مرحله توالی با برخی از ارزش، برخی از ارزش های دیگر، 517 00:29:26,580 --> 00:29:32,210 و پس از آن لیست خالی، آنچه ما می خواهیم به بازگشت فقط سکوت، استراحت 0 است. 518 00:29:32,210 --> 00:29:35,110 >> و به جای آن بودن یک لیست خالی و یا 0، 519 00:29:35,110 --> 00:29:38,150 آن استراحت 0 است، چرا که ما برخورد با نوع موسیقی، 520 00:29:38,150 --> 00:29:43,230 و لیست خالی از موسیقی نوع فقط یک بقیه هیچ مدت زمان. 521 00:29:43,230 --> 00:29:45,680 این هیچ موسیقی است. 522 00:29:45,680 --> 00:29:51,460 و سپس ما می بینیم اگر ما یک گام توالی با V برای بحث حجم، 523 00:29:51,460 --> 00:29:57,290 P به صورت ابزار احتیاط استدلال، و سپس یک لیست از X است. 524 00:29:57,290 --> 00:29:58,360 >> سپس ما برخی از مسائل است. 525 00:29:58,360 --> 00:30:01,290 به طور خاص، ما اعمال می شود این لیست درک، 526 00:30:01,290 --> 00:30:05,700 و ما انجام برخی از عملیات بر روی شاید ارزش 527 00:30:05,700 --> 00:30:10,050 آن را تبدیل به یک مقدار عددی به طوری که آن را می توان پس از آن برشمرده شده و مورد استفاده قرار 528 00:30:10,050 --> 00:30:12,300 برای انتخاب ساز. 529 00:30:12,300 --> 00:30:16,730 باز هم، این است که کمی کمی به عمد inconcise 530 00:30:16,730 --> 00:30:20,580 فقط برای نشان دادن همه چیز عجیب و غریب شما می توانید در Haskell که شما انجام 531 00:30:20,580 --> 00:30:23,170 نگاهی به آن را در زمان خود شما. 532 00:30:23,170 --> 00:30:23,802 >> خیلی خوب. 533 00:30:23,802 --> 00:30:26,010 بنابراین ما در حال در نهایت رسیدن به انجام آنچه که ما اقدام به انجام، 534 00:30:26,010 --> 00:30:28,820 که است که برخی از موسیقی کامپیوتر است. 535 00:30:28,820 --> 00:30:32,250 بنابراین ما قصد داریم به تلاش برای را فرر آهنگ ژاک. 536 00:30:32,250 --> 00:30:35,220 بنابراین چگونه بسیاری وجود دارد عبارات در فرر ژاک؟ 537 00:30:35,220 --> 00:30:38,790 538 00:30:38,790 --> 00:30:39,680 چهار. 539 00:30:39,680 --> 00:30:40,460 عالی. 540 00:30:40,460 --> 00:30:42,490 و چه خوب است که همه آنها تکرار 541 00:30:42,490 --> 00:30:46,990 همان مقدار از زمان است، که دو. 542 00:30:46,990 --> 00:30:50,730 >> بنابراین ما باید چهار عبارات هر دو بار تکرار شده است. 543 00:30:50,730 --> 00:30:53,590 و به طور خاص، آنها را در یک دور است. 544 00:30:53,590 --> 00:30:55,340 و بسیاری وجود دارد، راه های بسیاری برای پیاده سازی 545 00:30:55,340 --> 00:30:57,520 دور که می تواند سرگرم کننده برای انجام. 546 00:30:57,520 --> 00:31:00,260 من آن را در انجام داده ام بسیار ساده و در اینجا راه، 547 00:31:00,260 --> 00:31:05,760 که فقط به construct-- خط تابع یک لیستی از مقادیر طول می کشد موسیقی 548 00:31:05,760 --> 00:31:10,390 و آن را تبدیل به ترکیب متوالی با استفاده از ترکیب متوالی که 549 00:31:10,390 --> 00:31:13,000 اپراتور. 550 00:31:13,000 --> 00:31:19,540 >> و بعد من بخش های مختلف به تاخیر می اندازد با ساخت آنها را با بقیه آغاز خواهد شد. 551 00:31:19,540 --> 00:31:22,770 بنابراین من با بقیه دو معیار شروع، و پس از آن استراحت از چهار اقدامات، 552 00:31:22,770 --> 00:31:26,160 و پس از آن استراحت شش اقدامات و پس از آن دور 553 00:31:26,160 --> 00:31:32,290 کار می کند، همانطور که همه ما می دانیم که این آهنگ. 554 00:31:32,290 --> 00:31:37,180 ما می بینیم دو حاشیه نویسی و یا تغییرات ارزش های موسیقی 555 00:31:37,180 --> 00:31:43,150 که در این پی در پی موجود ترتیب از عناصر موسیقی. 556 00:31:43,150 --> 00:31:44,810 ما یک حجم اضافه کنید. 557 00:31:44,810 --> 00:31:48,960 این یک تابع برای حاشیه نویسی است موسیقی با حجم خاص است. 558 00:31:48,960 --> 00:31:51,320 این یک مثال خوب است یک MIDI سیگنال در حال اجرا 559 00:31:51,320 --> 00:31:57,510 از 0 تا 127، هفت بیت از اطلاعاتی که می توان انجام شده است. 560 00:31:57,510 --> 00:32:00,650 >> و پس از آن ما آن را بسیار دیدم خلاصه، اما به طور کلی MIDI 561 00:32:00,650 --> 00:32:02,310 لیست تمام ابزار های مختلف. 562 00:32:02,310 --> 00:32:04,450 و در کل بسیاری از آنها وجود ندارد. 563 00:32:04,450 --> 00:32:11,230 اگر شما استفاده از یک ایستگاه کاری دیجیتال صوتی، مانند Ableton زنده و یا ابزارهای نرم افزار، 564 00:32:11,230 --> 00:32:17,560 یک محدوده فوق العاده گسترده تر وجود دارد از سینت سایزر و سازهای VST. 565 00:32:17,560 --> 00:32:21,510 اما تنها استاندارد MIDI دارای چند یا چند ده. 566 00:32:21,510 --> 00:32:22,799 و برخی از آنها خنده دار هستند. 567 00:32:22,799 --> 00:32:25,840 من فکر کردم این امر می تواند سرگرم کننده است اگر ما بازی ابزار ابزار MIDI 568 00:32:25,840 --> 00:32:30,550 هلیکوپتر، و پس از آن راه بعدی از طریق دور، 569 00:32:30,550 --> 00:32:37,980 ما مصنوعی پد را انجام داد، و پس از آن این سرب شاخی مصنوعی موج مربعی، 570 00:32:37,980 --> 00:32:44,240 و سپس صدای تراوش، که یک کمی تیره در MIDI بد من 571 00:32:44,240 --> 00:32:46,410 سینت سایزر، اما آنها OK. 572 00:32:46,410 --> 00:32:50,030 >> و سپس ما این اجازه و در نحو از هاسکل، 573 00:32:50,030 --> 00:32:54,030 و سپس ما در حال بازی همه این قطعات با هم 574 00:32:54,030 --> 00:32:56,265 با اپراتور ترکیب موازی. 575 00:32:56,265 --> 00:33:00,260 576 00:33:00,260 --> 00:33:02,296 و ما احتمالا می تواند برخی از این نشان می دهد. 577 00:33:02,296 --> 00:33:07,674 578 00:33:07,674 --> 00:33:08,340 در اینجا کد است. 579 00:33:08,340 --> 00:33:14,960 و شما می توانید در C ببینید، آنجا می شود، یک بسیاری از صاف کردن گلو و تنظیم 580 00:33:14,960 --> 00:33:19,760 کد جدول قبل از شما می تواند موسیقی شبیه به این را. 581 00:33:19,760 --> 00:33:22,080 و یا هر برنامه نویسی دیگر زبان، شما احتمالا می خواهم 582 00:33:22,080 --> 00:33:27,210 باید به تعامل با نوعی از کتابخانه و یا API و همه چیز را تعیین می کنند، 583 00:33:27,210 --> 00:33:28,725 و پس از آن شما می خواهم که به تمیز کردن. 584 00:33:28,725 --> 00:33:33,810 اما در اینجا در Haskell است، من فکر می کنم، یک بار شما از آن آویزان است، فوق العاده 585 00:33:33,810 --> 00:33:35,770 قابل خواندن و بسیار رسا. 586 00:33:35,770 --> 00:33:38,930 587 00:33:38,930 --> 00:33:43,240 بنابراین اجرای وجود دارد از فرر ژاک. 588 00:33:43,240 --> 00:33:43,740 خیلی خوب. 589 00:33:43,740 --> 00:33:47,557 در حال حاضر ما خواهید برای اضافه کردن سازهای کوبه ای، و این بیت مسیه کوچک است. 590 00:33:47,557 --> 00:33:49,015 بنابراین اجازه دهید نگاهی به اسلاید. 591 00:33:49,015 --> 00:33:56,880 592 00:33:56,880 --> 00:34:00,540 بنابراین ایده های بزرگ این است که یک دسته از لیست یا قطعات. 593 00:34:00,540 --> 00:34:04,140 در آن رول ماشین آلات، وجود دارد به طور معمول حدود شاید هشت 594 00:34:04,140 --> 00:34:08,670 10 ریتم یا سازهای کوبه ای بخش است. 595 00:34:08,670 --> 00:34:10,159 و سپس با استفاده از یک دسته از تکنیک های. 596 00:34:10,159 --> 00:34:14,889 و ما در مورد صحبت کردیم با استفاده از these-- چین، فیلتر، توابع لامبدا، 597 00:34:14,889 --> 00:34:19,429 نقشه برداری بیش از لیست برای تولید ارزش در برخی از محدوده 1 تا R، R 16، 598 00:34:19,429 --> 00:34:20,699 و یا 32 مرحله در ترتیب سنج. 599 00:34:20,699 --> 00:34:23,810 600 00:34:23,810 --> 00:34:29,920 >> و پس از آن اگر یک ارزش در لیست وجود دارد به عنوان ما در حال اجرا از طریق ترتیب سنج، 601 00:34:29,920 --> 00:34:34,190 در حال اجرا را از طریق آن و بیش از آن که توجه داشته باشید تبدیل می شود، 602 00:34:34,190 --> 00:34:36,060 و نمونه باعث می شود. 603 00:34:36,060 --> 00:34:42,810 604 00:34:42,810 --> 00:34:47,110 در اینجا همه راه های مختلف عجیب و غریب هستند من با آمد برای تولید یادداشت ها. 605 00:34:47,110 --> 00:34:48,940 سعی کنید آن را در مجموع نیمه خود را. 606 00:34:48,940 --> 00:34:50,360 این صدا را سرد. 607 00:34:50,360 --> 00:34:53,066 608 00:34:53,066 --> 00:34:54,690 زمان اجازه، ما از طریق این. 609 00:34:54,690 --> 00:34:59,200 اما در حال حاضر، من حدس می زنم ما باید نسخه ی نمایشی آنچه ما. 610 00:34:59,200 --> 00:35:01,380 بیایید امیدوار باشیم که این می رود OK. 611 00:35:01,380 --> 00:35:02,670 >> بنابراین این GHCI است. 612 00:35:02,670 --> 00:35:06,580 613 00:35:06,580 --> 00:35:09,121 و ما یک بار فایل من به نام song.lhs، 614 00:35:09,121 --> 00:35:10,620 که فایل من فقط به شما نشان داده است. 615 00:35:10,620 --> 00:35:11,470 باشه عالیه. 616 00:35:11,470 --> 00:35:15,010 به عنوان کانر قبلا هم گفتم، آن را وارد شده، آن را تایپ چک، 617 00:35:15,010 --> 00:35:18,380 بنابراین من می تواند خیلی آسان تر نفس بکشم. 618 00:35:18,380 --> 00:35:20,010 آن را نمی برای منفجر کردن بر روی من. 619 00:35:20,010 --> 00:35:22,720 >> من می خواهم چیزی را مفید به شما نشان دهد. 620 00:35:22,720 --> 00:35:25,900 شما می توانید ببینید که ماژول لود به نام 50. 621 00:35:25,900 --> 00:35:28,240 شما می توانید که ماژول فهرست. 622 00:35:28,240 --> 00:35:32,092 و این است که خیلی خوب درباره doing-- شاید آنچه 623 00:35:32,092 --> 00:35:34,550 شما در حال انجام در Haskell است به نام توسعه نرم افزار، 624 00:35:34,550 --> 00:35:36,980 اما شما می توانید تعداد زیادی از انجام چیزهای سرگرم کننده را در خود. 625 00:35:36,980 --> 00:35:42,410 و گردش کار واقعا خوب است در مقایسه با بسیاری از زبان های دیگر، 626 00:35:42,410 --> 00:35:45,872 زیرا شما می توانید در یک واقعا راه قابل خواندن چه خبر است. 627 00:35:45,872 --> 00:35:47,830 بنابراین می بینیم که ما تمام این عبارات، که 628 00:35:47,830 --> 00:35:53,760 لیست رزین، رزین های موسیقی می باشد، و سپس ما ساخت این تا به چیزی بزرگتر، 629 00:35:53,760 --> 00:35:55,220 که یک آهنگ موسیقی است. 630 00:35:55,220 --> 00:35:58,450 این واحد موسیقی است. 631 00:35:58,450 --> 00:36:05,545 و سپس ما می توانید این همه بازی با یک تابع به نام موسیقی بازی. 632 00:36:05,545 --> 00:36:09,040 شما می توانید در اینجا ببینید. 633 00:36:09,040 --> 00:36:11,310 که فقط به بازی کند. 634 00:36:11,310 --> 00:36:15,040 >> من باید می گویند من صحبت در مورد این علامت دلار است که در همه جا. 635 00:36:15,040 --> 00:36:17,980 علامت دلار عملگر میانوند دیگری است. 636 00:36:17,980 --> 00:36:22,500 اما آن را تا پایینترین اولویت هر اپراتور، که به طور موثر 637 00:36:22,500 --> 00:36:24,960 بدان معنی است که همه چیز را در در سمت چپ علامت دلار 638 00:36:24,960 --> 00:36:28,460 و حق علامت دلار، ما قصد داریم به قبل از آن ارزیابی شده است. 639 00:36:28,460 --> 00:36:31,430 پس از آن این نوع مانند دیگر راه اضافه کردن پرانتز. 640 00:36:31,430 --> 00:36:33,980 641 00:36:33,980 --> 00:36:36,220 >> CONNOR HARRIS: این اساسا ترکیب توابع است. 642 00:36:36,220 --> 00:36:40,026 و آن را تضمین می کند که شما اگر have-- نیست شما توابع دو طرف و یا میانوند 643 00:36:40,026 --> 00:36:42,900 اپراتورهای در هر دو طرف، آنها را نه ارتباط در سراسر آن و به شما بدهد 644 00:36:42,900 --> 00:36:46,030 نتایج غیر منتظره. 645 00:36:46,030 --> 00:36:49,790 >> استفان KREWSON: بنابراین ما can-- با استفاده از آن، ما می توانید تماس بگیرید. 646 00:36:49,790 --> 00:36:51,415 نخست، ما آن را بدون درام بازی کند. 647 00:36:51,415 --> 00:37:00,330 648 00:37:00,330 --> 00:37:03,170 که هلیکوپتر، هلیکوپتر MIDI. 649 00:37:03,170 --> 00:37:05,495 >> [موسیقی] 650 00:37:05,495 --> 00:37:08,525 651 00:37:08,525 --> 00:37:09,525 این موج مربع وجود دارد. 652 00:37:09,525 --> 00:37:24,520 653 00:37:24,520 --> 00:37:25,490 تراوش صدا. 654 00:37:25,490 --> 00:37:27,630 و شما واقعا می توانید به وحشی با این. 655 00:37:27,630 --> 00:37:30,872 من برداشت یک بسیار ساده است، چون من می دانستم که من باید نیش می زنند کردن 656 00:37:30,872 --> 00:37:31,830 بیشتر از من می جویدن. 657 00:37:31,830 --> 00:37:36,460 فقط نگه داشتن آن بسیار ساده است برای نشان دادن ایده های اصلی. 658 00:37:36,460 --> 00:37:39,952 اما پس از آن من بود مثل، ما کردم به اضافه کردن برخی از طبل به این. 659 00:37:39,952 --> 00:37:41,910 فقط به خاطر این است که یک کمی غیر قابل نفوذ، 660 00:37:41,910 --> 00:37:45,790 و من استفاده نمی نام قطعات درام، 661 00:37:45,790 --> 00:37:49,490 من نقشه برداری them-- زیرا آنها بخشی از این کلاس برشمرده شده، 662 00:37:49,490 --> 00:37:51,500 من آنها را به نوع داده int نقشه برداری. 663 00:37:51,500 --> 00:37:53,120 یک مانند یک طبل است. 664 00:37:53,120 --> 00:37:54,370 صفر است و همچنین. 665 00:37:54,370 --> 00:37:56,000 هفت کلاه بالا است. 666 00:37:56,000 --> 00:38:00,920 و پایین در اینجا که در آن توابع یک کمی بیشتر تصادفی، 667 00:38:00,920 --> 00:38:02,100 این مانند طبل بارتو می باشد. 668 00:38:02,100 --> 00:38:08,360 >> بنابراین اگر شما فکر می کنم شاید یک about-- راه سرگرم کننده برای پیاده سازی یک ماشین درام 669 00:38:08,360 --> 00:38:12,830 است به استفاده از بسیار منظم الگوهای در طبل خود را. 670 00:38:12,830 --> 00:38:17,640 بنابراین به عنوان مثال، در فیلتر بیش از لیست با همه چیز است که به تماس 671 00:38:17,640 --> 00:38:20,590 1 هنگامی که آن را ماژول 04 گرفته شده است. 672 00:38:20,590 --> 00:38:27,190 بنابراین من می 1، 5، 9، 13، 17-- این ضرب و شتم برای اولین بار از هر اندازه گیری است. 673 00:38:27,190 --> 00:38:32,860 >> و سپس این همان است چیزی که بیش از دو مرحله منتقل شده است. 674 00:38:32,860 --> 00:38:33,850 به طوری که از آن نامتعارف. 675 00:38:33,850 --> 00:38:37,480 بنابراین این امر می تواند چیزی شبیه به یک کلاه بالا. 676 00:38:37,480 --> 00:38:39,640 و سپس دوباره، در اینجا، آن را کمی تصادفی، 677 00:38:39,640 --> 00:38:41,080 چرا که ما در حال انجام درام بارتو. 678 00:38:41,080 --> 00:38:44,180 و من به برخی ماراکاس در اینجا، بیش از حد. 679 00:38:44,180 --> 00:38:50,280 >> بنابراین من می تواند بازی ماشین درام پاسخ، اما آن را برای همیشه لطفا برای رفتن، 680 00:38:50,280 --> 00:38:53,700 و آن را ممکن است شروع به گرفتن تا تمام حافظه در سیستم من. 681 00:38:53,700 --> 00:38:57,090 بنابراین من این تابع پاسخ پخش موسیقی، که به عنوان خواهیم دید، 682 00:38:57,090 --> 00:39:02,020 استفاده از ترکیب موازی کوتاه کردن به بازی کمی آهنگ فرر ژاک ما 683 00:39:02,020 --> 00:39:04,200 همراه با این ماشین درام عجیب و غریب. 684 00:39:04,200 --> 00:39:06,190 بنابراین اجازه دهید نگاهی به. 685 00:39:06,190 --> 00:39:10,920 و لطفا به من در بهبود ترتیب تمام نقاط درام. 686 00:39:10,920 --> 00:39:13,375 نمی تخصص من، اما من بسیاری از سرگرم کننده انجام آن بود. 687 00:39:13,375 --> 00:39:17,678 688 00:39:17,678 --> 00:39:20,654 >> [موسیقی] 689 00:39:20,654 --> 00:39:52,260 690 00:39:52,260 --> 00:39:56,980 >> پس از دوره، این است که همه کمی به عنوان سرگرم کننده نیست 691 00:39:56,980 --> 00:40:01,100 اگر ما می توانیم آن را تبدیل کند به نمره تا شاید آن 692 00:40:01,100 --> 00:40:04,650 می تواند تفسیر شود توسط یک انسان عملکرد. 693 00:40:04,650 --> 00:40:06,535 بنابراین من آن را در اینجا اجرا کنید. 694 00:40:06,535 --> 00:40:07,910 من در حال حاضر تولید فایل های ام. 695 00:40:07,910 --> 00:40:10,280 شما می توانید ببینید که وجود دارد نقطه LilyPond نام file-- و این 696 00:40:10,280 --> 00:40:14,500 خواهد بود SEGUE من را به Connor-- و یک فایل نقطه MIDI، 697 00:40:14,500 --> 00:40:18,610 و یک فایل PDF نقطه است، که چه LilyPond نام در نهایت تولید خواهد کرد. 698 00:40:18,610 --> 00:40:23,770 >> اما این اسکریپت ها را، و من فقط آنها را با گزینه های کمک خود را اجرا کنید. 699 00:40:23,770 --> 00:40:28,090 اگر شما این را به بالا و در حال اجرا با Euterpea، شما می توانید یک فایل MIDI را تولید کند. 700 00:40:28,090 --> 00:40:31,160 و سپس از فایل MIDI با این برنامه MIDI 2LY، 701 00:40:31,160 --> 00:40:34,930 شما می توانید یک لیلی تولید فایل برکه، و سپس شما 702 00:40:34,930 --> 00:40:37,974 می توانید یک PDF از نمره تولید کند. 703 00:40:37,974 --> 00:40:39,390 و ما باید یک نگاهی به این است. 704 00:40:39,390 --> 00:40:52,599 705 00:40:52,599 --> 00:40:55,140 بنابراین کانر نشان خواهد شما چگونه به این حاشیه نویسی بهتر است، 706 00:40:55,140 --> 00:41:02,570 اما این فرر ژاک است تولید شده توسط من در Euterpea. 707 00:41:02,570 --> 00:41:07,300 آن را فقط در C. باید می فهمیدم هک کردن آنچه که در واقع در. 708 00:41:07,300 --> 00:41:11,090 اما این خط لوله است چگونه شما انجام است که با آن. 709 00:41:11,090 --> 00:41:12,950 اجازه دهید صحبت بیشتر در مورد LilyPond نام برد. 710 00:41:12,950 --> 00:41:15,780 >> CONNOR HARRIS: OK بیایید ببینید. 711 00:41:15,780 --> 00:41:19,480 712 00:41:19,480 --> 00:41:21,419 آیا شما ذکر بدانید شما هاسکل؟ 713 00:41:21,419 --> 00:41:22,460 استفان KREWSON: آه، بله. 714 00:41:22,460 --> 00:41:23,480 اتمام به یاد شما هاسکل. 715 00:41:23,480 --> 00:41:24,410 آن را در منابع است. 716 00:41:24,410 --> 00:41:26,830 این که چگونه من شروع یادگیری و آن را بزرگ. 717 00:41:26,830 --> 00:41:27,580 آموزش گنگ نیست. 718 00:41:27,580 --> 00:41:28,829 >> CONNOR HARRIS: پس از آن آنلاین. 719 00:41:28,829 --> 00:41:34,760 بنابراین یک پسر به نام [نامفهوم] learnyouahaskell.com، بدون فاصله. 720 00:41:34,760 --> 00:41:37,065 دستور زبان بیمار است. 721 00:41:37,065 --> 00:41:38,690 استفان KREWSON: این نشان داده شده، بیش از حد. 722 00:41:38,690 --> 00:41:39,440 CONNOR HARRIS: پس چه LilyPond نام است؟ 723 00:41:39,440 --> 00:41:42,480 این برنامه اعلانی است زبان برای حروفچینی موسیقی. 724 00:41:42,480 --> 00:41:45,480 بنابراین شما می توانید declarative-- از چیزهایی مانند HTML فکر می کنم، 725 00:41:45,480 --> 00:41:50,900 که در آن شما نیست saying-- HTML نمی گوید چگونه مرورگرهای وب باید 726 00:41:50,900 --> 00:41:52,180 رندر صفحات گام به گام. 727 00:41:52,180 --> 00:41:54,096 این فقط گفت: این یک توصیف متنی است 728 00:41:54,096 --> 00:41:56,100 از آنچه که می خواهید صفحه را مانند نگاه کنید. 729 00:41:56,100 --> 00:41:59,310 >> و سپس آن را نیز یک برنامه که این زبان کامپایل، 730 00:41:59,310 --> 00:42:02,300 یا آن را در آن خوانده شده و سپس در واقع کند حروفچینی برای شما، 731 00:42:02,300 --> 00:42:05,570 و تف کردن این نمرات PDF به دنبال فوق العاده است. 732 00:42:05,570 --> 00:42:08,250 شما همچنین می توانید فرمت PNG و یا هر آنچه را دریافت کنید. 733 00:42:08,250 --> 00:42:10,300 یک راه خوب برای فکر می کنم این است با قیاس 734 00:42:10,300 --> 00:42:16,620 این است که لاتک نوعی مانند LillyPond، اما فقط برای حروفچینی عادی است. 735 00:42:16,620 --> 00:42:20,360 بنابراین به جای of-- آن را WYSIWYG، آنچه می بینید 736 00:42:20,360 --> 00:42:22,960 چیزی است که شما، مانند، می گویند آخر است، و یا سیبلیوس، 737 00:42:22,960 --> 00:42:27,430 و یا مایکروسافت ورد، که در آن شما می توانید در زمان واقعی و پیش نویس همه چیز را در زمان واقعی 738 00:42:27,430 --> 00:42:31,340 و بلافاصله تغییرات. 739 00:42:31,340 --> 00:42:32,140 >> این است که مبتنی بر متن. 740 00:42:32,140 --> 00:42:35,290 شما باید کامپایل خود را نمرات با استفاده از یک برنامه جداگانه 741 00:42:35,290 --> 00:42:37,090 و خارج فایلهای PDF بعد. 742 00:42:37,090 --> 00:42:43,320 این است که کمی کمتر مناسب برای استفاده اگر شما 743 00:42:43,320 --> 00:42:46,520 تلاش برای نوشتن به طور مستقیم به یک نمره و شما 744 00:42:46,520 --> 00:42:48,620 تلاش برای نوشتن بر روی کامپیوتر. 745 00:42:48,620 --> 00:42:50,830 اما هستند بسیاری وجود دارد از مزایای آن است. 746 00:42:50,830 --> 00:42:56,110 یکی، آن را به نظر بسیار بهتر، چون در واقع می توانید LillyPond 747 00:42:56,110 --> 00:42:58,210 را هم به انجام تصمیم گیری طرح به درستی، 748 00:42:58,210 --> 00:43:02,380 بر خلاف سیبلیوس یا آخر، که به الگوریتم به خطر بیافتد تا 749 00:43:02,380 --> 00:43:05,020 که آنها می توانند نمایش همه چیز در زمان واقعی است. 750 00:43:05,020 --> 00:43:07,660 >> پس چرا LilyPond-- گرافیک کامپیوتری سخت است. 751 00:43:07,660 --> 00:43:10,535 اگر شما در حال انجام هر کاری با موسیقی و شما می خواهید برای نوشتن نمرات، 752 00:43:10,535 --> 00:43:13,900 شما نمی خواهید به ارسال از همه چیز توسط خودتان 753 00:43:13,900 --> 00:43:19,040 با شروع چگونه به منظور جلب کارکنان و چگونه به منظور جلب فتوکپی. 754 00:43:19,040 --> 00:43:21,020 خیلی سخت است. آن را پیش از انجام شده است. 755 00:43:21,020 --> 00:43:22,170 شما خوب هستید. 756 00:43:22,170 --> 00:43:26,200 >> اگر شما می خواهید به استفاده از آخر و یا سیبلیوس، فرمت های فایل برای کسانی که همه چیز 757 00:43:26,200 --> 00:43:30,180 بسیار پیچیده است، و شما می توانید نیست واقعا آنها را برنامه نویسی استفاده کنید. 758 00:43:30,180 --> 00:43:35,020 شما می توانید باز کردن سیبلیوس با آخر و به فایل، صادرات به عنوان PDF خود را، 759 00:43:35,020 --> 00:43:37,600 اما شما می توانید واقعا نمی پاسخ که از یک اسکریپت. 760 00:43:37,600 --> 00:43:40,440 LillyPond، شما می توانید پاسخ از کسانی که اسکریپت. 761 00:43:40,440 --> 00:43:44,397 شما به راحتی می تواند تکرار LillyPond با لاتکس. 762 00:43:44,397 --> 00:43:47,230 من خواهد شد که زمان زیادی برای رفتن ندارد به این فن آوری در حال حاضر، 763 00:43:47,230 --> 00:43:48,321 اما آنها وجود داشته باشد. 764 00:43:48,321 --> 00:43:50,070 اگر می خواهید به نگاه به یک کتاب LillyPond، 765 00:43:50,070 --> 00:43:53,760 این یک برنامه است که همراه با این توزیع LillyPond خود را، 766 00:43:53,760 --> 00:43:57,030 و آن را برای تکرار قطعات LillyPond به لاتک 767 00:43:57,030 --> 00:44:00,340 اگر شما می خواهید برای انجام کاری مانند یک سند بزرگ موسیقی شناسی 768 00:44:00,340 --> 00:44:02,289 با مثال، به عنوان مثال. 769 00:44:02,289 --> 00:44:04,580 و آن را یک مهارت خوب برای زندگی اگر شما در حال انجام هر کاری 770 00:44:04,580 --> 00:44:05,770 با موسیقی، و نه فقط CS50. 771 00:44:05,770 --> 00:44:09,320 من LillyPond برای همه استفاده می شود پروژه های آهنگسازی من 772 00:44:09,320 --> 00:44:11,880 از آنجایی که من اساسا یک ارشد در دبیرستان. 773 00:44:11,880 --> 00:44:13,455 >> بنابراین در اینجا برخی از نمونه های ساده هستند. 774 00:44:13,455 --> 00:44:17,490 775 00:44:17,490 --> 00:44:21,060 این است که اساسا نماینده از سطح دشواری 776 00:44:21,060 --> 00:44:23,481 که بیشتر مردم آن صورت آنها در تلاش بودند 777 00:44:23,481 --> 00:44:24,980 به استفاده از LilyPond نام برای پروژه های ساده است. 778 00:44:24,980 --> 00:44:29,519 این یکی از اولین آغاز است به یک گروه آواز شرکت داشتند مقدمه باخ. 779 00:44:29,519 --> 00:44:31,810 این یکی از پایین گزیده ای است از یکی از آثار خود من، 780 00:44:31,810 --> 00:44:34,650 و آن را فقط برای نمایش وجود شما چیزهایی مانند [نامفهوم] 781 00:44:34,650 --> 00:44:38,550 قرار دادن چند خط در همان کارکنان، چگونه شعر undersetting کار می کند. 782 00:44:38,550 --> 00:44:41,350 783 00:44:41,350 --> 00:44:46,110 underlays شعر یک چیزی که خیلی آسان برای استفاده LilyPond نام برای موسیقی مجموعه خوانندگان. 784 00:44:46,110 --> 00:44:48,814 >> و به این ترتیب پس از آن برخی بیشتر وجود دارد نمونه پیچیده است. 785 00:44:48,814 --> 00:44:50,980 همه این ها در انجام LilyPond نام و آنها امکان پذیر است. 786 00:44:50,980 --> 00:44:55,280 این چکیده ای اول از [نامفهوم] توسط [نامفهوم]. 787 00:44:55,280 --> 00:44:58,860 و این [نامفهوم] از یک قطعه باس انفرادی 788 00:44:58,860 --> 00:45:03,550 فلوت توسط [نامفهوم]، که longtime-- است که 789 00:45:03,550 --> 00:45:07,101 یکی از اعضای قدیمی بود بخش موسیقی در اینجا، من فکر می کنم. 790 00:45:07,101 --> 00:45:08,600 من مطمئن هستم که در آن او را به رفته نیست. 791 00:45:08,600 --> 00:45:12,410 اما او مشاور از دانشگاه هاروارد بود انجمن آهنگسازان برای مدت زمان طولانی. 792 00:45:12,410 --> 00:45:13,530 مرد فوق العاده است. 793 00:45:13,530 --> 00:45:16,920 و او برخی از موسیقی است که بسیار می نویسد نماد پیچیده که LillyPond 794 00:45:16,920 --> 00:45:20,500 با این وجود می تواند اداره کند بسیار خوبی. 795 00:45:20,500 --> 00:45:26,030 >> بنابراین فقط به شما احساس را به آنچه قابلیت های این چیزی است are-- تا 796 00:45:26,030 --> 00:45:28,960 داخلی از LillyPond بسیار پیچیده است. 797 00:45:28,960 --> 00:45:31,060 و شما می توانید آن را برای استفاده یک مدت طولانی، از جمله 798 00:45:31,060 --> 00:45:32,520 برای برخی از بسیار پیچیده همه چیز، بدون اینکه واقعا 799 00:45:32,520 --> 00:45:34,060 نیاز به می دانم که بسیاری در مورد آنها. 800 00:45:34,060 --> 00:45:38,720 اما ایده اولیه این است که در پایین ترین سطح، اتم های LillyPonds 801 00:45:38,720 --> 00:45:39,970 یادداشت می باشد. 802 00:45:39,970 --> 00:45:42,761 یادداشت حاوی زمینه به نام صدای. 803 00:45:42,761 --> 00:45:44,510 بنابراین زمینه صدای اساسا مربوط 804 00:45:44,510 --> 00:45:47,410 به یک خط از صداهای متعدد و گوناگون. 805 00:45:47,410 --> 00:45:49,410 و پس از آن زمینه می توان به شامل سلسله مراتبی 806 00:45:49,410 --> 00:45:53,590 در آنهایی که سطح بالاتر که نشان دهنده کارکنان در نمره 807 00:45:53,590 --> 00:45:56,750 گروه بندی و یا بزرگتر مانند کارکنان پیانو یا کارکنان گروه کر، 808 00:45:56,750 --> 00:45:58,990 و سپس در نهایت کل زمینه نمره. 809 00:45:58,990 --> 00:46:02,260 و شما در واقع می تواند شامل نمره های مختلف را در یک کتاب. 810 00:46:02,260 --> 00:46:05,770 >> و هر زمینه دارای یک تعداد دستگاه های حکاکی شده است. 811 00:46:05,770 --> 00:46:08,340 اگر شما را از طریق نگاه محتویات یک متن 812 00:46:08,340 --> 00:46:14,410 و چاپ یک نماد خاص یا یک کلاس خاصی از علامت در صورت لزوم. 813 00:46:14,410 --> 00:46:17,840 بنابراین برای هر زمینه صدا، است [نامفهوم] یادداشت ها وجود دارد 814 00:46:17,840 --> 00:46:24,270 قلم زن، این است که اساسا یک تابع و یا یک شی است که می نویسد از همه توجه داشته باشید 815 00:46:24,270 --> 00:46:26,290 سر در بخش سمت راست صفحه است. 816 00:46:26,290 --> 00:46:29,510 پس از آن یک قلم زن، شکاف، وجود دارد که نویسد شکاف لب و کام در کارکنان. 817 00:46:29,510 --> 00:46:31,517 پس از آن یک مترونوم وجود دارد علامت گذاری به عنوان قلم زن، که 818 00:46:31,517 --> 00:46:33,100 نویسد علائم مترونوم در یک نمره. 819 00:46:33,100 --> 00:46:36,410 و همه این جا بسیار به خوبی به سلسله مراتب. 820 00:46:36,410 --> 00:46:39,500 و آن را بسیار، بسیار، بسیار قابل تنظیم، که شما نیاز دارید 821 00:46:39,500 --> 00:46:42,880 اگر شما می خواهید برای دریافت این جور چیزها. 822 00:46:42,880 --> 00:46:45,730 >> به طوری که تمام زمینه های یک بسیاری از ویژگی های مختلف 823 00:46:45,730 --> 00:46:52,410 که شما می توانید برای همه چیز تغییر از فاصله به فونت های مختلف 824 00:46:52,410 --> 00:46:54,942 انتخاب به اندازه از همه چیز. 825 00:46:54,942 --> 00:46:56,900 اگر می خواهید به انجام حتی همه چیز پیچیده تر، 826 00:46:56,900 --> 00:46:59,210 یک زبان برنامه نویسی تعبیه شده است. 827 00:46:59,210 --> 00:47:01,820 آنها با استفاده از طرح، که گویش LISP است. 828 00:47:01,820 --> 00:47:04,960 این احتمالا نمی کنند معنی هر چیزی به شما. 829 00:47:04,960 --> 00:47:06,900 اما اساسا، یک طرح یکی دیگر از کاربردی 830 00:47:06,900 --> 00:47:09,500 زبان برنامه نویسی، بیشتر یا کمتر. 831 00:47:09,500 --> 00:47:10,800 >> استفان KREWSON: کراوات در. 832 00:47:10,800 --> 00:47:12,690 >> CONNOR HARRIS: آره. 833 00:47:12,690 --> 00:47:15,390 این یک کراوات در خوب است، گمان می کنم. 834 00:47:15,390 --> 00:47:20,150 و آن را به عنوان یک زبان آموزشی استفاده می شود، در واقع، پایین توده خیابان در MIT است. 835 00:47:20,150 --> 00:47:26,590 و آن را بسیار مفید برای LillyPond به دلایل مختلف فنی. 836 00:47:26,590 --> 00:47:30,317 >> و بنابراین اگر می خواهید مطمئن ساده ترفند وابسته به شرطی، 837 00:47:30,317 --> 00:47:32,900 برای example-- است خاص وجود دارد وضعیت نمره که ملاقات کرد، 838 00:47:32,900 --> 00:47:36,495 ایجاد تغییرات به طرح و یا پس از آن whatnot-- 839 00:47:36,495 --> 00:47:37,620 این تاسیسات وجود دارد. 840 00:47:37,620 --> 00:47:38,667 آنها پیچیده است. 841 00:47:38,667 --> 00:47:40,250 بنابراین در اینجا یک نمونه کد بسیار ساده است. 842 00:47:40,250 --> 00:47:43,810 این پنج خط است. 843 00:47:43,810 --> 00:47:46,120 در واقع، من تعریف دو پرسنل. 844 00:47:46,120 --> 00:47:46,904 آن را در 3/4 است. 845 00:47:46,904 --> 00:47:48,695 کارکنان برای اولین بار است علامت گذاری به عنوان متصل سرعت، 846 00:47:48,695 --> 00:47:51,110 اما است که در واقع برای رفتن به طیف نمره، 847 00:47:51,110 --> 00:47:54,960 چون علائم سرعت در سطح نمره می باشد. 848 00:47:54,960 --> 00:47:59,044 قلم زن، علامت مترونوم متصل به نمره زمینه. 849 00:47:59,044 --> 00:48:01,460 کلید های مختلف وجود دارد، زیرا [نامفهوم] قلم زن، 850 00:48:01,460 --> 00:48:02,710 است کارکنان متصل شده است. 851 00:48:02,710 --> 00:48:04,441 شما می توانید در واقع انجام است. 852 00:48:04,441 --> 00:48:06,190 نمونه نوشتم است در واقع در C بزرگ، 853 00:48:06,190 --> 00:48:07,990 اما آن را فقط به نشان شما می توانید 854 00:48:07,990 --> 00:48:09,570 کلید های مختلف در کارکنان متفاوت است. 855 00:48:09,570 --> 00:48:15,710 و نحو اساسی این است که شما ارسال توجه داشته باشید نام با E، F، G، هر چه. 856 00:48:15,710 --> 00:48:18,910 اگر می خواهید به انجام accidentals، شما پسوند و یا ES. 857 00:48:18,910 --> 00:48:22,640 این است که از هلندی کنوانسیون musicological. 858 00:48:22,640 --> 00:48:28,290 >> و به انجام جهش اکتاو، شما مجبور به استفاده این تیک تیک علائم، کاما یا علامت. 859 00:48:28,290 --> 00:48:30,580 نسبت فقط بدان معناست هر آنچه که شما باید توجه داشته باشید، 860 00:48:30,580 --> 00:48:34,080 آن را به طور خودکار در خواهد plaec شود اکتاو نزدیک به یکی از قبلی. 861 00:48:34,080 --> 00:48:37,624 و اگر شما می خواهید به پرش بیش از fifth-- می گویند که یک پنجم یا more-- 862 00:48:37,624 --> 00:48:39,165 پس از آن شما باید با استفاده از [نامفهوم]. 863 00:48:39,165 --> 00:48:42,580 اما در غیر این صورت، شما لازم نیست مشخص اکتاو از هر توجه داشته باشید تنها. 864 00:48:42,580 --> 00:48:46,130 >> و نسبی C، نخست، و C، شما فقط مشخص C میانی 865 00:48:46,130 --> 00:48:48,630 و پایه C، یادداشت ویژه برای اولین بار. 866 00:48:48,630 --> 00:48:55,020 سپس شما باید این کارکنان که سازماندهی این دو صدای یا نمونه از موسیقی، 867 00:48:55,020 --> 00:48:56,730 و شما باید یک نمره. 868 00:48:56,730 --> 00:48:58,440 و به نظر می رسد که مثل این. 869 00:48:58,440 --> 00:49:01,780 870 00:49:01,780 --> 00:49:05,380 >> اگر می خواهید وقت به کپی این نمونه از LillyPond 871 00:49:05,380 --> 00:49:07,530 کد بر روی قبلی اسلاید در اینجا، و شما 872 00:49:07,530 --> 00:49:09,030 می توانید آن را برای LillyPond خودتان ارسال. 873 00:49:09,030 --> 00:49:11,280 من می دانم که ما چیزی را که به نظر می رسد بسیاری مانند این. 874 00:49:11,280 --> 00:49:17,236 875 00:49:17,236 --> 00:49:19,610 بنابراین یکی دیگر از تکنولوژی وجود دارد به نام موسیقی XML حفظ 876 00:49:19,610 --> 00:49:22,030 توسط مردم کاملا متفاوت است. 877 00:49:22,030 --> 00:49:28,150 XML متنی داده structure-- من است باید بگویم داده structure-- می گویند 878 00:49:28,150 --> 00:49:29,580 نقشه مرتب سازی بر استعاره. 879 00:49:29,580 --> 00:49:33,800 و آن را طراحی شده برای برگزاری داده های سلسله مراتبی بسیار خوب است. 880 00:49:33,800 --> 00:49:37,050 HTML، برای مثال، یک نوع XML است. 881 00:49:37,050 --> 00:49:41,090 و شما می توانید بگویید که آنها به دلیل XML تا به حال تمام براکت زاویه و زاویه 882 00:49:41,090 --> 00:49:44,700 علامت اسلش براکت که زمینه های داده های نشان می دهد. 883 00:49:44,700 --> 00:49:47,390 >> من یک کد ندارد به عنوان مثال از موسیقی XML. 884 00:49:47,390 --> 00:49:50,450 شما می توانید آن را خودتان پیدا کنید. 885 00:49:50,450 --> 00:49:53,735 در واقع، به همین دلیل شما ممکن است بخواهید استفاده از XML به عنوان مرحله میانی 886 00:49:53,735 --> 00:49:55,980 است، اول از همه، آن را فرمت تبادل 887 00:49:55,980 --> 00:50:02,301 برای اساسا every-- باید بگویم نه هر، اما بسیاری از نمره های مختلف 888 00:50:02,301 --> 00:50:02,800 نویسندگان. 889 00:50:02,800 --> 00:50:04,966 بنابراین اگر شما در موسیقی ارسال XML، نه تنها می تواند LillyPond 890 00:50:04,966 --> 00:50:08,080 خواندن آن را با کمک این های فلش برنامه ای به نام موسیقی XML به LY، 891 00:50:08,080 --> 00:50:11,360 بلکه آخر می توانید به خواندن آن، سیبلیوس می توانید آن را بخوانید. 892 00:50:11,360 --> 00:50:14,770 بسته به اینکه چگونه شی داخلی خود را سلسله مراتب کار می کند برای به نمایندگی از موسیقی، 893 00:50:14,770 --> 00:50:18,820 ممکن است آن را آسان تر برای نوشتن به موسیقی XML از LillyPond 894 00:50:18,820 --> 00:50:22,410 و فقط بر روی موسیقی XML تکیه به LY به انجام تبدیل. 895 00:50:22,410 --> 00:50:24,282 >> من فکر نمی کنم [نامفهوم] دارای موسیقی XML. 896 00:50:24,282 --> 00:50:25,490 استفان KREWSON: آن نمی کند. 897 00:50:25,490 --> 00:50:26,340 کسی است که کار بر روی آن، هر چند. 898 00:50:26,340 --> 00:50:27,090 >> CONNOR HARRIS: OK. 899 00:50:27,090 --> 00:50:31,040 Euterpea یک ندارد موسیقی XML خروجی است. 900 00:50:31,040 --> 00:50:35,340 اگر شما می خواهید یک ایده پروژه نهایی، شاید در ارتباط با بچه 901 00:50:35,340 --> 00:50:38,620 که استفان می داند، و آنها به کمک شما نیاز. 902 00:50:38,620 --> 00:50:40,992 >> استفان KREWSON: من خیلی دوست دارم که. 903 00:50:40,992 --> 00:50:43,450 CONNOR HARRIS: همچنین، در واقع، هر زبان های برنامه نویسی 904 00:50:43,450 --> 00:50:46,610 که ارزش نمک آن در حال حاضر دارای یک کتابخانه XML، 905 00:50:46,610 --> 00:50:51,030 بنابراین شما می توانید تبدیل همه در داخل از موسیقی خود را به برخی از شی 906 00:50:51,030 --> 00:50:54,120 که کتابخانه XML می تواند ارسال که می کمتری نیاز 907 00:50:54,120 --> 00:50:57,470 تغییرات به ساختار داخلی خود را برای هر موسیقی شما اشیاء 908 00:50:57,470 --> 00:51:00,310 می خواهید از نوشتن آن را به ارسال به طور مستقیم در LillyPond خواهد بود. 909 00:51:00,310 --> 00:51:04,380 پس فقط آن را چاپ با XML با کتابخانه XML در زبان شما، 910 00:51:04,380 --> 00:51:07,260 که تضمین می کنند که آن را از لحاظ دستوری درست و همه چیز، 911 00:51:07,260 --> 00:51:08,720 و سپس آن را به LillyPond تبدیل کنید. 912 00:51:08,720 --> 00:51:11,060 بنابراین تکنولوژی شما ممکن است بخواهید نگاه به اگر شما در حال انجام چیزی 913 00:51:11,060 --> 00:51:11,650 به این شکل. 914 00:51:11,650 --> 00:51:14,490 915 00:51:14,490 --> 00:51:16,370 >> [نامفهوم]، یکی دیگر از فن آوری auxilarry. 916 00:51:16,370 --> 00:51:21,700 این است که اساسا کار میکند فناوری و یا استودیو فناوری برای LillyPond. 917 00:51:21,700 --> 00:51:25,380 بنابراین آن ارائه می دهد با نحو، با قالب 918 00:51:25,380 --> 00:51:28,770 برای مختلف رایج ترکیبی از ابزار. 919 00:51:28,770 --> 00:51:32,780 این اجازه می دهد تا مشاهده تقسیم صفحه نمایش شما می توانید کد خود را در یک پنجره 920 00:51:32,780 --> 00:51:37,350 و PDF در پنجره دیگر و با کلیک بر روی مکان در PDF 921 00:51:37,350 --> 00:51:40,650 پرش به مرتبط نقاط در کد منبع خود را. 922 00:51:40,650 --> 00:51:45,330 این مفید تر است اگر شما در واقع هستید نوشتن LillyPond فایل های خود را 923 00:51:45,330 --> 00:51:47,400 از اگر شما در حال تولید آنها برنامه نویسی. 924 00:51:47,400 --> 00:51:51,230 اما باز هم، آن را چیزی مفید داشته باشند. 925 00:51:51,230 --> 00:51:51,970 >> عالی. 926 00:51:51,970 --> 00:51:55,860 ذخایر دیگر من فقط رفتن را از طریق این بسیار به سرعت. 927 00:51:55,860 --> 00:52:01,270 LillyPond manuals-- LillyPond است اسناد عالی در وب سایت خود. 928 00:52:01,270 --> 00:52:02,270 آنها آموزش. 929 00:52:02,270 --> 00:52:03,478 آنها یک مرجع نحو. 930 00:52:03,478 --> 00:52:07,010 آنها صدها قطعه دارند برای چیزهای مختلف کوچک 931 00:52:07,010 --> 00:52:09,930 یو ممکن است نیاز را نشان دهید قابلیت های مختلف. 932 00:52:09,930 --> 00:52:12,250 اگر شما می خواهید به استفاده از زبان برنامه نویسی 933 00:52:12,250 --> 00:52:14,740 و یا گسترده تر سفارشی، پس از آن وجود دارد 934 00:52:14,740 --> 00:52:16,730 داخلی که در آن آدرس های مرجع. 935 00:52:16,730 --> 00:52:21,950 اگر شما می خواهید به استفاده از موسیقی XML، وجود دارد که URL، musicxml.com/tutorial. 936 00:52:21,950 --> 00:52:27,960 >> و پس از آن اگر شما نیاز به یادگیری طرح زیرا شما در واقع می خواهید به استفاده 937 00:52:27,960 --> 00:52:30,960 امکانات برنامه نویسی در LillyPond، پس از آن یک [نامفهوم] به نام وجود دارد 938 00:52:30,960 --> 00:52:32,918 تفسیر یافته از برنامه های کامپیوتری، 939 00:52:32,918 --> 00:52:35,820 است که نه تنها دوم بزرگترین کتاب CS تا به حال written-- 940 00:52:35,820 --> 00:52:39,770 پیدا کردن من پس از آن اگر شما می خواهید بدانید چه من فکر می کنم یکی از بزرگترین is-- 941 00:52:39,770 --> 00:52:43,580 اما آن را نیز بسیار خوب مقدمه ای بر زبان مناسب. 942 00:52:43,580 --> 00:52:46,630 شما نمی خواهد بیش از نیاز چند بخش است. 943 00:52:46,630 --> 00:52:47,827 >> و از آن است. 944 00:52:47,827 --> 00:52:48,410 هر گونه سؤال؟ 945 00:52:48,410 --> 00:52:54,068 946 00:52:54,068 --> 00:52:57,972 >> دانشجو: از کجا می توانم دانلود خود را تولید فرر ژاک 947 00:52:57,972 --> 00:53:01,050 بنابراین من می توانید آن را در آی پاد من قرار داده است؟ 948 00:53:01,050 --> 00:53:07,574 >> استفان KREWSON: خوب، شما می توانید ارسال به برخی فایل WAV به Euterpea. 949 00:53:07,574 --> 00:53:08,490 و شما باید کد. 950 00:53:08,490 --> 00:53:10,000 این در GitHub است. 951 00:53:10,000 --> 00:53:15,590 را تغییرات خود را از فرر ژاک توسط ذهن کندو CS50. 952 00:53:15,590 --> 00:53:17,095 آن بزرگ خواهد بود. 953 00:53:17,095 --> 00:53:18,220 CONNOR HARRIS: هر کس دیگری؟ 954 00:53:18,220 --> 00:53:20,261 استفان KREWSON: ما نیاز درام باس بهتر، TOO. 955 00:53:20,261 --> 00:53:21,935 این واقعا بد است. 956 00:53:21,935 --> 00:53:26,565 >> دانشجو: Euterpea نه تنها سمت ترکیب، اما signal-- 957 00:53:26,565 --> 00:53:27,440 استفان KREWSON: بله. 958 00:53:27,440 --> 00:53:30,100 در واقع، کار من در Euterpea زمانی که من 959 00:53:30,100 --> 00:53:33,450 زمان this-- یک وجود دارد دوره های تحصیلات تکمیلی در دانشگاه ییل که 960 00:53:33,450 --> 00:53:35,900 با استفاده از it-- در سنتز صدا بود. 961 00:53:35,900 --> 00:53:39,810 بنابراین یک واقعا وجود دارد راه خوب با استفاده از فلش 962 00:53:39,810 --> 00:53:46,150 و برخی از ما از نماد دیدم آهنگسازی با هم توابع سیگنال قرار دارند. 963 00:53:46,150 --> 00:53:50,610 به طور خاص، باس ترین از آنها فقط یک موج ساده سینوسی است. 964 00:53:50,610 --> 00:53:54,240 اما اگر شما شروع به آهنگسازی آن در راه برنامه ریزی عجیب و غریب، 965 00:53:54,240 --> 00:54:00,010 شما می توانید صدا دیوانه دریافت اثرات، مانند آبشار عجیب و غریب. 966 00:54:00,010 --> 00:54:04,640 شما می توانید بسیار ریگ ایجاد برای تلفن های موبایل با بسیاری از مدولاسیون. 967 00:54:04,640 --> 00:54:07,730 >> من یک پروژه در دانه بود سنتز، که 968 00:54:07,730 --> 00:54:12,290 جایی در میان FM و نمونه برداری. 969 00:54:12,290 --> 00:54:15,230 شما را بسیار کوچک، نمونه کمی، و سپس 970 00:54:15,230 --> 00:54:20,440 با نوعی از ترکیب آنها مدولاتور و ایجاد یک صدا غنی تر است. 971 00:54:20,440 --> 00:54:24,900 ما همچنین مدل سازی فیزیکی، به طوری که تلاش در مورد فیزیک فکر می کنم 972 00:54:24,900 --> 00:54:29,410 و psychoacoustics از چیزی شبیه ترومپت، و فکر کردن در مورد راه 973 00:54:29,410 --> 00:54:32,320 صدا قوی کردن زنگ شیپور 974 00:54:32,320 --> 00:54:35,200 و آکوستیک اتاق و مدل سازی 975 00:54:35,200 --> 00:54:40,195 که با اسیلاتورهای عمومی. 976 00:54:40,195 --> 00:54:47,690 977 00:54:47,690 --> 00:54:48,940 CONNOR HARRIS: با تشکر بسیار. 978 00:54:48,940 --> 00:54:50,140 ممنونم که اومدی. 979 00:54:50,140 --> 00:54:52,400 و من همیشه مایل به من پرسش های توسط email-- 980 00:54:52,400 --> 00:54:55,020 connorharris@college.harvard.edu. 981 00:54:55,020 --> 00:54:57,020 >> استفان KREWSON: آره. stephen.krewson@yale.edu. 982 00:54:57,020 --> 00:54:58,810 983 00:54:58,810 --> 00:55:00,360 خنک. 984 00:55:00,360 --> 00:55:01,667