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 أو PHP أو لغات أخرى ملحة 13 00:00:29,620 --> 00:00:33,450 ان كنت قد استخدمت بالفعل، وخاصة على مكتبة كتب في هاسكل 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 انها نوع من مثل مطاط للموسيقى إذا كان أي منكم 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 لقد قراءة لي على جيثب يمكنك أن نلقي نظرة على. 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: حزقيل و يجب 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 وهذا هو مجرد جدا نظرا 50000 قدم. 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 في أواخر '70s و في "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 رسائل ميدي. 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 لديك ملفات ميدي للموسيقى، على سبيل المثال. 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، تختلف كثيرا عن PHP. 121 00:06:22,770 --> 00:06:28,120 ونحن في طريقنا لمعرفة أن هناك ل سهولة التركيب وظيفة في هاسكل 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 فإنه من السهل قليلا ل يرمز فرير جاك في هاسكل. 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 المنظم مع جميع مختلف تهدئة الامور في هاسكل 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 من بعض الجوانب من هاسكل وEuterpea، 146 00:08:07,620 --> 00:08:11,760 وهو محددة النطاق اللغة جزءا لا يتجزأ من كتب 147 00:08:11,760 --> 00:08:14,970 في هاسكل لأنواع الموسيقية. 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 ثم كما سنرى، وأنواع والنوع دروس هامة جدا في هاسكل، 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 أعرف عن طريقة رقمية أنواع العمل في هاسكل، 161 00:08:55,114 --> 00:08:56,530 ولكن أنا لا أعرف الكثير عن الموسيقى. 162 00:08:56,530 --> 00:09:01,280 ولكن يمكنك استكشاف الطريقة التي كنت تعريفه باستخدام هذه ر أو نوع القيادة 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 وهاسكل يفعل ذلك في مكالمة بواسطة بحاجة الى وسيلة أو بطريقة غير صارمة. 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 لذلك سيكون من الرائع حقا إذا نحن يمكن تكرار هذا في هاسكل. 189 00:10:24,650 --> 00:10:31,040 ويمكننا ان نفعل ذلك مع لانهائي القيم، وبخاصة قوائم لا نهائية. 190 00:10:31,040 --> 00:10:35,860 فمن السهل جدا للكتابة قائمة لا نهائية في هاسكل. 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 لمعرفة المزيد عن طيات في هاسكل أو وظائف الدرجة الأعلى. 197 00:10:55,770 --> 00:10:59,640 ولكن أريد فقط أن ندخله الى إعطاء إحساس دقيق لكيفية غريب 198 00:10:59,640 --> 00:11:03,700 هاسكل هو ومدى قوته. 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-- إذا كان يطلق عليه مع أضعاف ص زائد 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: إذن لوضعها أخرى طريقة، أضعاف ص يأخذ ثلاث حجج. 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 من الأشياء عن هاسكل و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 على آلات لفة في I أظهر لكم، وهذا عادة 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 >> هاسكل هو أيضا نقية، لذلك فقد قوي الكتابة الثابتة التي كونور ألمح إلى. 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 هناك، بالطبع، استثناءات monadic لهذا، ولكن هذا خارج نطاق عملنا. 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 واحد هو أنه من السهل جدا ل parallelize برامج هاسكل. 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 إذا كنت [غير مسموع] و 1، و من 2، ثم و من 3 أو whatnot-- و من 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 لذلك من السهل جدا أن parallelize الأشياء. 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 مشكلة المشغل الحمولة الزائدة. 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-- و x و y-- 351 00:19:42,810 --> 00:19:46,630 يمكن تمثيل و من س إلى ص تطبيقها. 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 ولذلك فإن هذا يعني أننا يمكن تعيين وظيفة و من العاشر على قائمة ذ ل. 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 >> وCONCAT هو حزقيل عملية لتسطيح قائمة. 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 وحتى ذلك الحين يمكننا CONCAT أو تتسطح أنه من مرتين. 374 00:21:10,365 --> 00:21:12,240 CONNOR HARRIS: A بساطة مثال على الضمادة، 375 00:21:12,240 --> 00:21:15,323 إذا كنت like-- تصور و هو مجرد وظيفة الضرب يأخذ اثنين 376 00:21:15,323 --> 00:21:16,840 الحجج ويعود منتجاتها. 377 00:21:16,840 --> 00:21:19,320 حتى إذا كان لديك و 4 5، انها 20. 378 00:21:19,320 --> 00:21:22,670 ولكن يمكنك التفكير في هذا الأمر also-- لديك وظيفة و 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 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 >> لذلك لدينا هنا مثال من ومجهول 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 وهذا يستغرق سوى X وحدة n-- 400 00:22:28,007 --> 00:22:28,840 CONNOR HARRIS: نعم. 401 00:22:28,840 --> 00:22:31,330 لذلك و هي وظيفة حجتين ن وع 402 00:22:31,330 --> 00:22:35,440 وترجع وظيفة التي هي في حد ذاتها وظيفة من وسيطة واحدة، س هما. 403 00:22:35,440 --> 00:22:38,815 404 00:22:38,815 --> 00:22:40,690 ستيفن KREWSON: I مشغلي أقحم المذكورة أعلاه. 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 زائد 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 في هاسكل. 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 لأننا سنستخدم آخر مشغل في ذلك الصفوف (tuple) قليلا هناك 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-- آسف، التي ينبغي أن تكون أ و ب. 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 س عنصر في بعض القائمة، إذا وضعت في 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 عنصرا من قائمة في العاشر، ثم سنقوم باستدعاء وظائف الايثيلين. 452 00:25:23,030 --> 00:25:25,100 لذلك الايثيلين هو مجرد وظيفة قرع. 453 00:25:25,100 --> 00:25:30,200 الأمر يحتاج إلى بعض ص قيمة هذا جزء من مجموعة يحدها من جميع 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 إلا فإنه يعطيها رقم الإستمارة، ورقم الإستمارة هو مجرد بقية الربع المذكرة. 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 س يتم ملؤها من قبل هذا شيدت لائحة واحدة 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 بناء الجملة الأساسية لل comprehensions القائمة 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 هو في ض. 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 >> في هاسكل، هل يمكن ربما استخدام ربما اكتب ربما، 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 HARRIS: في أمثلة هاسكل أخرى، 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 في هاسكل. 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 لأن ذلك أحد كتابة الصارمة جدا هاسكل ل 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 وظيفة، والتي أخذت القيمة ربما، ثم عدد صحيح، ثم قائمة [إينتس]، 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 ومن ثم فإننا نرى اذا حصلنا على خطوة تسلسل مع الخامس للحجة الحجم، 523 00:29:51,460 --> 00:29:57,290 ص لأداة احترازي الحجة، ثم قائمة في العاشر. 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 فقط لاظهار كل الأشياء غريبة يمكنك القيام به في هاسكل كما كنت 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 >> وthen-- رأيناه جدا لفترة وجيزة، ولكن 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 إذا كنت تستخدم محطة عمل الصوت الرقمي، مثل ابلتون لايف أو أدوات برو، 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 المزج، لكنهم موافق. 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 ولكن هنا في هاسكل هو، كما أعتقد، مرة واحدة يمكنك الحصول على تعليق منه، لا يصدق 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 إلى ص، ص 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 دعونا نأمل أن يكون هذا يذهب موافق. 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 OK، عظيم. 616 00:35:11,470 --> 00:35:15,010 كما قال كونور في وقت سابق، أنه المترجمة، IT نوع فحص، 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 تفعلونه في هاسكل ليس دعا وتطوير البرمجيات، 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 >> وأود أن say-- لم أتحدث عن هذه علامة الدولار هذا في كل مكان. 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 I تعيين them-- لأنهم جزء من تلك الفئة تعدادها، 662 00:37:49,490 --> 00:37:51,500 I معين لهم [إينتس]. 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 ولدي بعض maracas إلى هنا، أيضا. 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 يمكنك أن ترى أن هناك نقطة يليبوند الملف-- وهذا 696 00:40:10,280 --> 00:40:14,500 سوف يكون لي سغ] على ل Connor-- وملف نقطة MIDI، 697 00:40:14,500 --> 00:40:18,610 وملف PDF نقطة، وهو ما سوف يليبوند تولد في نهاية المطاف. 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. I يجب أن أحسب أنه ما هذا الإختراق انها فعلا في. 708 00:41:07,300 --> 00:41:11,090 ولكن هذا هو خط أنابيب ل كيف يمكنك أن تفعل ذلك مع ذلك. 709 00:41:11,090 --> 00:41:12,950 دعونا نتحدث أكثر عن يليبوند. 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: فما هي يليبوند؟ 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 أو Microsoft Word، حيث يمكنك كتابة في في الوقت الحقيقي ومشروع الأمور في الوقت الحقيقي 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 استخدام يليبوند لمشاريع بسيطة. 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 التحتية الغنائية هي شيء وهذا جدا سهلة الاستخدام يليبوند للموسيقى الكورال. 784 00:44:46,110 --> 00:44:48,814 >> وحتى ذلك الحين هناك بعض أكثر أمثلة معقدة هنا. 785 00:44:48,814 --> 00:44:50,980 تتم كل هذه في يليبوند وانهم ممكنا. 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 التي يستخدمونها المخطط الذي هو لهجة من اللثغة. 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 وانها تستخدم كلغة التدريس، في الواقع، بانخفاض قداس افي. في معهد ماساتشوستس للتكنولوجيا. 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، كنت احقة IS أو ES. 857 00:48:18,910 --> 00:48:22,640 هذا هو من الهولندية الاتفاقيات موسيكولوغيكال. 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-- I لا ينبغي أن نقول البيانات 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 قراءة ذلك مع مساعدة من هذا auxilary دعا برنامج الموسيقى 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 resources-- آخر أنا فقط تذهب من خلال هذا بسرعة كبيرة. 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 مرجع الداخلية في ذلك URL. 935 00:52:16,730 --> 00:52:21,950 إذا كنت ترغب في استخدام الموسيقى XML، هناك أن URL، musicxml.com/tutorial~~gender=M. 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: حسنا، يمكنك كتابة إلى بعض الملفات الرعايا في Euterpea. 949 00:53:07,574 --> 00:53:08,490 وكان لديك رمز. 950 00:53:08,490 --> 00:53:10,000 انها على جيثب. 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: نحن بحاجة طبل باس أفضل أيضا. 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 في الواقع، فإن العمل I حدث في 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 وعلم النفس المسموعي من شيء من هذا القبيل البوق، والتفكير في الطريقة 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