1 00:00:00,000 --> 00:00:05,180 2 00:00:05,180 --> 00:00:05,930 קאַנער האַרריס: הי. 3 00:00:05,930 --> 00:00:06,820 איך בין קאַנער האַרריס. 4 00:00:06,820 --> 00:00:09,729 איך בין אַ קס50 CA אין האַרוואַרד. 5 00:00:09,729 --> 00:00:11,270 סטיווען קרעווסאָן: איך בין סטיווען קרעווסאָן. 6 00:00:11,270 --> 00:00:12,582 איך בין אַ טף פֿאַר קס50 ביי יאַלע. 7 00:00:12,582 --> 00:00:15,790 קאַנער האַרריס: און מיר רע געגאנגען צו רעדן וועגן עטלעכע טעקנאַלאַדזשיז אַז איר זאל 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 מיר רע געגאנגען צו זייַן פאָקוסינג אויף ערשטער אַ פּראָגראַממינג שפּראַך גערופֿן Haskell. 11 00:00:24,400 --> 00:00:26,280 עס ס אַ Functional שפּראַך, אַזוי די פּעראַדיים 12 00:00:26,280 --> 00:00:29,620 איז זייער אַנדערש פון C אָדער PHP אָדער אנדערע ימפּעראַטיוו שפּראַכן 13 00:00:29,620 --> 00:00:33,450 אַז איר ווע געניצט שוין, און ספּעציעל אויף אַ ביבליאָטעק געשריבן אין Haskell 14 00:00:33,450 --> 00:00:40,240 גערופֿן עוטערפּעאַ, וואָס קענען העלפֿן מענטשן מיט שרייבן מוזיק פונקטיאָנאַללי, 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 >> נאָך דעם, איך וועט באַקענען איר צו עפּעס גערופֿן לילליפּאָנד, וואָס 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 האָבן געניצט לייטעקס פֿאַר מאַט קלאסן אָדער אנדערע פּ שטעלן קלאסן אָדער וואָס האָבן איר. 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 >> סטיווען קרעווסאָן: אין דערצו, מיר געדאַנק עס 24 00:01:04,319 --> 00:01:06,720 וואָלט זיין קיל צו שטעלן אַרויף אַ קליין ביסל פון הינץ 25 00:01:06,720 --> 00:01:10,780 צו אַ רערנ צווישן עוטערפּעאַ-דזשענערייטאַד מידי טעקעס 26 00:01:10,780 --> 00:01:13,910 אין לילליפּאָנד, אַזוי מיר צושטעלן עטלעכע לימעד אויף סקריפּס 27 00:01:13,910 --> 00:01:16,310 צו טאָן אַז וואָס זענען צוגעשטעלט מיט לילליפּאָנד 28 00:01:16,310 --> 00:01:19,160 נאָר צו האַלטן עס עפענען מקור און באַקומען אַ רערנ געגאנגען. 29 00:01:19,160 --> 00:01:20,910 קאַנער האַרריס: ווידער, מיר זאָל ונטערשטרייַכן, 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 >> סטיווען קרעווסאָן: רעכט. 33 00:01:26,362 --> 00:01:30,116 און טאָוטאַלי פּאָטער. 34 00:01:30,116 --> 00:01:32,240 קאַנער האַרריס: אזוי אַקקנאָוולעדגמענץ, נאָר לייענען אַז. 35 00:01:32,240 --> 00:01:33,406 סטיווען קרעווסאָן: דולי באמערקט. 36 00:01:33,406 --> 00:01:36,360 דאַנק צו די folks. 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 נאָר email מיר אויב איר האָבן קיין שאלות. 41 00:01:47,840 --> 00:01:52,829 אָבער מיר וועט לויפן דעם אונטער די האַשאָרע אַז דאָס איז ארבעטן פֿאַר יעדער יינער. 42 00:01:52,829 --> 00:01:55,620 קאַנער האַרריס: און אויב איר קענען ניט באַקומען לילליפּאָנד צו אַרבעטן, קיין גרויס האַנדלען. 43 00:01:55,620 --> 00:02:00,139 עס ס קיין לעבן זאַמלונג אַז וועט זיין ינוואַלווד, לפּחות אויף מיין סוף. 44 00:02:00,139 --> 00:02:02,930 סטיווען קרעווסאָן: Haskell און לילליפּאָנד זאָל ביידע האָבן ינסטאָלערז. 45 00:02:02,930 --> 00:02:08,497 עוטערפּעאַ איז דאַונלאָודיד ווי אַ פּעקל, אַזוי אויף און אַזוי אַרויס. 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 עטלעכע טיפּ אָפ-- אפֿשר אַ זיך-ענלעך סיקוואַנס פון הערות, אָדער אפֿשר הערות 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 מיט יאַמאַהאַ און יוחנן טשאָוונינג אין סטאַנפֿאָרד 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 אבער וואָס מיר ניטאָ זיך קאָנצענטרירט אויף הייַנט איז עפּעס גערופֿן מידי, 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 זענען קאָנפאָרמאַנט צו די אַלגעמיין מידי נאָרמאַל. 72 00:03:38,300 --> 00:03:40,830 אזוי וואָס ס מידי? 73 00:03:40,830 --> 00:03:45,550 איך בין נישט געגאנגען צו באַקומען אויך טיף אין אים, אָבער מידי איז דאַטן אַריבערפירן פּראָטאָקאָל. 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 אַזוי מיר וועט זען אַז עס ס אַ מידי נאָרמאַל 77 00:03:54,170 --> 00:03:57,500 פֿאַר אַלע די פאַרשידענע שלאָג סאָונדס און מידי רעקאַמאַנדיישאַנז 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 אַ מידי סיגנאַל איז טיפּיקלי איינער ביסל ינדאַקייטינג 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 אויב איר ניטאָ Performing מיט אַ מידי קאָנטראָללער ווי געזונט ווי, פון קורס, 87 00:04:29,400 --> 00:04:31,250 הערות. 88 00:04:31,250 --> 00:04:33,450 און פון קורס, מידי האט שוין גאָר נוצלעך, 89 00:04:33,450 --> 00:04:37,550 ווייַל עס ס אַ וועג צו דראָט צוזאַמען אָדער מאַרגעריטקע קייט 90 00:04:37,550 --> 00:04:41,570 אַ בינטל פון מידי ייַזנוואַרג דיווייסאַז. 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 קאַנער האַרריס: יאָ. 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 >> סטיווען קרעווסאָן: דאָ ס אַ לעמאָשל פון גענעראַל מידי, 100 00:05:01,740 --> 00:05:06,520 ווייַזונג מידי ווי אַ מין פון גענעראַל פּראָטאָקאָל. 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 מעקייַעם פון די ינסטראַמאַנץ סאָונדס אין אַ געזונט שריפֿט אָדער אַ באַזונדער מידי 104 00:05:21,740 --> 00:05:25,740 סינטאַסייזער ווי ווייל די חילוק צווישן אפֿשר אַ טיפּעפאַסע-- וואָס זאגט, 105 00:05:25,740 --> 00:05:30,350 אין אַלגעמיין, דעם איז דער פּלאַן פון דעם באַזונדער וועג צו פאָרשטעלן 106 00:05:30,350 --> 00:05:35,907 טשאַראַקטערס-- און אַ באַזונדער שריפֿט וואָס האט אַ ספּעציפיש גרייס און טימברע, 107 00:05:35,907 --> 00:05:37,240 און עס ס מעקייַעם פון טהע-- 108 00:05:37,240 --> 00:05:39,156 >> קאַנער האַרריס: אפֿשר אַ בעסער פאַרגלייַך וואָלט 109 00:05:39,156 --> 00:05:43,430 זיין די אוניקאָד נאָרמאַל סייַס-- עס גיט אַ נומער צו יעדער כאַראַקטער, און טאַקע 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 און דאָך, איר קענען טראַכטן פון מידי ווי די אוניקאָד פון געזונט. 114 00:05:56,630 --> 00:06:03,250 און עס ס נאָר אַ רשימה אָפ-- אַ גרויס טייַך געשעענישן און ינסטראַמאַנץ און וואַטנאַט, 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 >> סטיווען קרעווסאָן: אזוי וואָס Haskell? 119 00:06:13,780 --> 00:06:19,110 Haskell איז אַ Functional פּראָגראַממינג שפּראַך, זייער אַוואַנסירטע, 120 00:06:19,110 --> 00:06:22,770 זייער אַנדערש פון C, זייער אַנדערש פֿון PHP. 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 מיר 'רע ניצן Haskell, אין וואָס פֿעיִקייטן זענען ערשטער קלאַס בירגערס. 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 וסואַללי די זענען געדאַנק פון ווי 16th הערות. 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 >> און מיר וועט זען אַ פייַן וועג אין Haskell פון רעפּריזענטינג דעם שריט 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 און עוטערפּעאַ, 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 פייַער אַרויף גהסי, וואָס איז די גלאַסקאָו Haskell קאַמפּיילער ינטערפּרעטער. 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 >> און דעם אַלאַוז איר צו מאַסע אין מיט טהע-- די סינטאַקס איז צווייפּינטל און דעמאָלט 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 אַזוי איר קענען שטענדיק טשעקק-- ספּעציעל אויב איר 'רע ארבעטן אין אַ נייַ דסקל 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 אבער איר קענען ויספאָרשן די וועג זיי ניטאָ Defined דורך ניצן דעם ה אָדער טיפּ באַפֿעל 163 00:09:01,280 --> 00:09:04,577 און דעמאָלט פאַך אין אַ באַזונדער פֿונקציע אָדער אַ דאַטע כייפעץ. 164 00:09:04,577 --> 00:09:05,410 קאַנער האַרריס: יאָ. 165 00:09:05,410 --> 00:09:09,820 אויב איר געדאַנק C און קלאַנג איז האַרדאַסס וועגן טייפּס, 166 00:09:09,820 --> 00:09:11,230 איר האָבן קיין געדאַנק וועגן Haskell. 167 00:09:11,230 --> 00:09:14,230 די גוט זאַך וועגן Haskell איז אַז אויב איר קענען באַקומען אייער קאָד צו צונויפנעמען 168 00:09:14,230 --> 00:09:16,790 און אויב Haskell טיפּ טשעקס, עס ס מיסטאָמע רעכט, 169 00:09:16,790 --> 00:09:18,675 ווייַל דעם טיפּ סיסטעם איז אַזוי שטרענג. 170 00:09:18,675 --> 00:09:20,090 >> סטיווען קרעווסאָן: יאָ. 171 00:09:20,090 --> 00:09:21,980 אַזוי איך נאָר ווילן צו גיין טהראָוגה-- און ווידער, 172 00:09:21,980 --> 00:09:27,160 דעם איז ניט טאן עס דזשוסטיסע-- אַ ביסל פון די פֿעיִקייטן פון Haskell אַז, לפּחות 173 00:09:27,160 --> 00:09:31,780 צו זייַן קרעאַטאָרס-- און עס איז געווען Created אין די שפּעט 1980 ס דורך אַ בינטל פון מענטשן, 174 00:09:31,780 --> 00:09:34,610 אַ קאמיטעט פון וועגן 20 פּעאָפּלע-- געדאַנק זענען וויכטיק. 175 00:09:34,610 --> 00:09:36,850 און דער ערשטער זאַך זיי ליסטעד אין אַ פּאַפּיר וואָס 176 00:09:36,850 --> 00:09:41,890 דיסקרייבד די אָנהייב פון Haskell איבער דער ערשטער 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 ביז די אַבסאָלוט לעצטע מינוטע-- וואָס איז ביז מיר אַקטשאַוואַלי דאַרפֿן זיי. 184 00:10:05,300 --> 00:10:08,480 >> אזוי דעם מעאַנס-- וואָס איז טאַקע קיל, ספּעציעל 185 00:10:08,480 --> 00:10:13,200 אויב מיר ניטאָ טראכטן וועגן די אַבסטראַקציע פון אַ מוזיקאַליש שריט סעקווענסער. 186 00:10:13,200 --> 00:10:16,740 איר אומקערן עס אויף, און איר אָנהייב פליסנדיק אַ שריט סעקווענסע-- 187 00:10:16,740 --> 00:10:20,010 אויב איר אלץ געארבעט מיט אַ פּויק מאַטשינע-- און עס פּונקט גייט אויף אייביק. 188 00:10:20,010 --> 00:10:24,650 אַזוי עס וואָלט זיין טאַקע פייַן אויב מיר קען עמיאַלייט אַז אין Haskell. 189 00:10:24,650 --> 00:10:31,040 און מיר קענען טאָן עס מיט אַנלימאַטאַד וואַלועס, אין באַזונדער Infinite רשימות. 190 00:10:31,040 --> 00:10:35,860 עס ס זייער גרינג צו דרוקן אַ Infinite רשימה אין 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 און אין באַזונדער, מיר רע געגאנגען צו בע-- ווען מיר טאָן אונדזער פאַרשידענע פּויק טיילן, 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 הערע-- 1 מינוס די קוואַנטיטי, 2 מינוס די קוואַנטיטי, 3 מינוס 0. 204 00:11:26,990 --> 00:11:29,170 און די סינטאַקס פֿאַר אַ קנייטש, איר געבן אַ קנייטש 205 00:11:29,170 --> 00:11:34,680 אַ באַזע ווערט און דעמאָלט אַן אָפּעראַטיאָנ-- אין דעם פאַל, דערצו אָדער כיסער. 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 אזוי דעם וועט זיין טהע-- אויב עס איז געווען געהייסן מיט פאַרלייגן ר פּלוס פון 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 קאַנער האַרריס: אזוי צו לייגן עס אנדערן וועג, פאַרלייגן ר נעמט דרייַ טענות. 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 ווי דאס אין דער רשימה, און דעמאָלט אַז ס די צוריקקומען רעזולטאַט פון פאַרלייגן אַר 224 00:12:29,147 --> 00:12:31,980 סטיווען קרעווסאָן: אזוי אין באַזונדער, די ביסט העכער סדר פֿעיִקייטן, 225 00:12:31,980 --> 00:12:34,460 ווייַל זיי ניטאָ גענומען אנדערן פונקציאָנירן ווי איינער פון די טענות. 226 00:12:34,460 --> 00:12:34,770 >> קאַנער האַרריס: יאָ. 227 00:12:34,770 --> 00:12:37,820 אויב איר ווע געניצט זיכער אנדערע לאַנגואַגעס-- איך וויסן ר, [ינאָדאַבאַל] 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 >> סטיווען קרעווסאָן: און וואָס ס פייַן וועגן פאַרלייגן ר 232 00:12:50,680 --> 00:12:53,880 אין דעם בייַשפּיל איז אַז פאַרלייגן ר קענען אַרבעטן מיט אַנלימאַטאַד רשימות. 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 און עוטערפּעאַ. 239 00:13:14,460 --> 00:13:20,650 >> אַזוי פאַרלייגן ר פון דעם קאָלאָנ-- צווייפּינטל איז נאָר אַ אָפּעראַטאָר אַז פּושיז זאכן 240 00:13:20,650 --> 00:13:25,700 צוזאַמען אויף אַ ליסט-- גערופֿן אויף אַ ליידיק רשימה, וואָס איז נאָר די ליידיק בראַקאַץ. 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 אַזוי האַסקעלל-- אין נאָר אַ ביסל אותיות, איר 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 און איך פּרעפּענד צו אַז דעם קירצער ביסל ליסט-- 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 און פאַרלייגן ר קענען טאָן אַז, ווייַל עס לאַזאַלי יוואַליוייץ, ווי אין די אויבן. 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 נו, Haskell גיט אַ פּלאַץ פון פונקטיאָנס-- 257 00:14:26,500 --> 00:14:29,450 און קוקן מער אין די אין דיין אייגן טימע-- אַזאַ ווי נעמען 258 00:14:29,450 --> 00:14:32,200 וואָס זאגט, גוט, מיר רע דזשענערייטינג דעם אַנלימאַטאַד רשימה, 259 00:14:32,200 --> 00:14:35,950 אָבער מיר ניטאָ נאָר געגאנגען צו נעמען עטלעכע נומער פון עס און אין דעם קאַסע-- 260 00:14:35,950 --> 00:14:38,410 מיר וועט זען דעם שפּעטער אין אונדזער פּויק מאַשין קאָדע-- 261 00:14:38,410 --> 00:14:43,740 גם איז נאָר עטלעכע מין פון גלאבאלע בייַטעוודיק פֿאַר די נומער פון טריט 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 >> Haskell איז אויך ריין, אַזוי עס האט שטאַרק סטאַטיק טייפּינג אַז קאַנער אַלודאַד צו. 267 00:15:00,230 --> 00:15:03,220 אַזוי פֿעיִקייטן זענען מאַטאַמאַטיקאַל אין די סענסע-- 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 >> קאַנער האַרריס: יאָ. 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 איינער איז אַז עס ס זייער גרינג צו פּאַראַללעליזע Haskell מגילה. 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 געבן אויס די זעלבע ווערט אויב איר קאָרמען אין אַ זיכער וואַלוע-- 281 00:15:39,280 --> 00:15:43,055 אויב איר 'רע [ינאָדאַבאַל] ו פון 1, ו פון 2, דעמאָלט עף פון 3 אָדער ווהאַטנאָט-- ו פון 1 282 00:15:43,055 --> 00:15:45,180 איז ניט געגאנגען צו שרייַבן אויס צו אַ טעקע אָדער טאָן עפּעס 283 00:15:45,180 --> 00:15:46,850 וואָס וועט יבערבייַטן די ווערט פון פ2. 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 >> סטיווען קרעווסאָן: אזוי טיפּ קלאַססעס-- און דעם 294 00:16:16,550 --> 00:16:21,610 וואַס-- קלאסן פון טייפּס זענען ינווענטיד צו סאָלווע 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 דאָך, מיר קען טראַכטן אָפ-- יקוואַלאַטי צווישן נומעריק טייפּס 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 און דעם איז אַלע מעגלעך אין Haskell ווייַל פון טיפּ קלאסן. 301 00:16:43,130 --> 00:16:48,000 >> אַזוי אויב איר דעפינירן אַ זיכער דאַטע טיפּע-- און דאָ, די ביסט מוזיקאַליש פּיטשיז. 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 עק-- זיי געהערן צו די עק טיפּ קלאַס. 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 די קומט נאָך סי 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 >> קאַנער האַרריס: און ווען מיר האָבן אַ דאַטן טיפּ 320 00:17:54,259 --> 00:17:57,050 אַז דעריוועס-- מיט אַז קיווערד "דעריווינג--" אַ זיכער טיפּ קלאַס, 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 שאַרף ווי גלייַך צו די פלאַך, פֿאַר משל. 324 00:18:09,450 --> 00:18:11,560 מיט דעם קאַנסטראַקשאַן דאָ, איך טאָן ניט טראַכטן C שאַרף 325 00:18:11,560 --> 00:18:14,940 און די פלאַך וועט זיין גלייַך, ווייַל די קאַמפּיילער וועט אויטאָמאַטיש 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 סטיווען קרעווסאָן: און דאָ, אַקטשאַוואַלי, דעם וועט 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 >> קורריינג יס-- קערי איז לעצט נאָמען פון Haskell קערי, וואס 346 00:19:29,250 --> 00:19:31,850 די Haskell בילד איז געהייסן נאָך. 347 00:19:31,850 --> 00:19:34,330 און דעם אַלאַוז אונדז אַ פייַן עלאַגאַנס ווען מיר ניטאָ 348 00:19:34,330 --> 00:19:36,880 שרייבן אַלע די פאַרשידענע פֿעיִקייטן אָדער Filters אַז מיר ניטאָ 349 00:19:36,880 --> 00:19:39,330 געגאנגען צו זיין מאַפּינג איבער אונדזער רשימות. 350 00:19:39,330 --> 00:19:42,810 אַ פֿונקציע פון ​​צוויי אַרגומענצ-- ו פון רענטגענ און י-- 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 קאַנער האַרריס: ווילן צו געבן אַ בייַשפּיל פון דעם? 356 00:19:58,920 --> 00:19:59,836 סטיווען קרעווסאָן: יאָ. 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 און דעמאָלט עס וועט נעמען אַ וואַלוע-- יוזשאַוואַלי אַ רשימה אָדער עפּעס. 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 צו דער ערשטער עלעמענט פון דעם ליסט-- און די ביסט רשימות פון מוזיקאַליש פראַסעס-- 364 00:20:31,890 --> 00:20:37,650 וועט פּראָדוצירן צוויי פון "איר סלעעפּינג--" אַזוי זענען איר סליפּינג, זענען איר סליפּינג. 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 ווי בעת שוין אומגעקערט ווי אַ פֿונקציע פון איין אַרגומענט-- נאָר רעפּליקייטינג צוויי מאָל. 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 קאַנער האַרריס: אַ סימפּלער לעמאָשל פון קורריינג, 375 00:21:12,240 --> 00:21:15,323 אויב איר'ד ליקע-- ימאַדזשאַן ו איז נאָר אַ קייפל פֿונקציע וואָס נעמט צוויי 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 אבער איר קענען טראַכטן פון דעם ווי אַלסאָ-- איר האָבן אַ פֿונקציע ו 4 379 00:21:22,670 --> 00:21:25,560 וואָס נעמט אַן אַרגומענט און קערט פיר מאל דעם אַרגומענט-- נאָר 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 >> סטיווען קרעווסאָן: לאַמבדאַ אויסדרוקן אָדער אַנאַנאַמאַס פֿעיִקייטן 386 00:21:42,110 --> 00:21:47,330 זענען אנדערן Haskell כאַלמאַרק. 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 Defined באָאָלעאַן פֿונקציע אַז נאָר נעמט אַ פּאָר וואַלועס. 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 און דעם נאָר נעמט רענטגענ מאָדולע נ-- 400 00:22:28,007 --> 00:22:28,840 קאַנער האַרריס: יאָ. 401 00:22:28,840 --> 00:22:31,330 אַזוי ו איז אַ פֿונקציע פון צוויי טענות N און פּ 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 סטיווען קרעווסאָן: איך דערמאנט ינפיקס אָפּערייטערז. 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 זאָגן, אין מאַטהעמאַטיקס-- 2 פּלוס 2 אַנשטאָט פון דער אָפּעראַטאָר פּלוס 408 00:22:49,910 --> 00:22:51,202 און דעמאָלט צוויי טענות 2 און 2. 409 00:22:51,202 --> 00:22:53,701 קאַנער האַרריס: עס ס גערופֿן פאַרקערט פּויליש נאָוטיישאַן, וואָס איז 410 00:22:53,701 --> 00:22:55,330 אַ טערמין איך צווייפל קיין פון איר וואָלט וויסן. 411 00:22:55,330 --> 00:22:56,288 >> סטיווען קרעווסאָן: רעכט. 412 00:22:56,288 --> 00:22:58,290 ריווערס פּויליש אָדער פּרעפֿיקס נאָוטיישאַן. 413 00:22:58,290 --> 00:23:01,412 אבער Haskell באַשלאָסן צו נוצן ינפיקס אָפּערייטערז. 414 00:23:01,412 --> 00:23:03,120 אזוי די ביסט עטלעכע פון דער מנהג אָנעס אַז 415 00:23:03,120 --> 00:23:07,770 זענען Defined פֿאַר די עוטערפּעאַ דסקל אין 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 עס נאָר plays אויף אייביק. 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 און אַז ינפיקסעד אָפּעראַטאָר איז סופּער נוציק מיט וואָס. 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 פון רענטגענ דורך עפּעס עלסע-- אנטשולדיגט, וואָס זאָל זיין אַ און ב. 432 00:24:01,010 --> 00:24:04,740 איר קען שרייַבן עס ווי אַ ציטירן פון ב. 433 00:24:04,740 --> 00:24:09,670 אַזוי אויב איר פּוט-- עלעמענט איז אן אנדער בייַשפּיל פון דעם. 434 00:24:09,670 --> 00:24:14,730 רענטגענ עלעמענט אין עטלעכע רשימה, אויב איר שטעלן עס אין באַקקטיקקס, איר קענען נוצן עס. 435 00:24:14,730 --> 00:24:20,400 כאָטש עס ס ניט אַ סימבאָל ווי פּלוס אָדער מינוס אָדער מאל, 436 00:24:20,400 --> 00:24:24,630 איר קענען נוצן די נאָמען פון אַ פונקציאָנירן ווי אַז אין באַקקטיקקס 437 00:24:24,630 --> 00:24:27,045 ווי ינפיקס אָפּעראַטאָר, וואָס איז שיין קיל. 438 00:24:27,045 --> 00:24:29,670 קאַנער האַרריס: ווידער, דאָס איז אַלע נאָר סינטאַקטיק צוקער, טאַקע. 439 00:24:29,670 --> 00:24:32,310 עס טוט ניט ווירקן די האַרץ פון שפּראַך. 440 00:24:32,310 --> 00:24:37,440 >> סטיווען קרעווסאָן: אזוי מיר זען דאָ פֿאַר די לעצטע פראַזע פון ​​אונדזער פרערע דזשאַק ליד, 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 קאַנער האַרריס: ווידער, רעפֿערענצן פֿאַר האַסקעלל-- ינטראָדוקטאָרי טעקסטבוקס 447 00:25:02,860 --> 00:25:04,680 וועט האָבן אַלע פון ​​דעם אין עס. 448 00:25:04,680 --> 00:25:07,790 >> סטיווען קרעווסאָן: אַזוי דאָ ס אַ שיין שליסל שורה פון די שריט סעקווענסער 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 אַזוי אויב רענטגענ איז אַן עלעמענט פון דער רשימה פון רענטגענ ס, דעמאָלט מיר וועט רופן זיך פּערק פֿעיִקייטן. 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 און דעמאָלט עס גיט אַז געדויער פון 1/4 טאָן. 456 00:25:38,840 --> 00:25:43,190 אַנדערש עס גיט עס אַ קנר, און קנר איז נאָר 1/4 טאָן מנוחה. 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 אויב אַז איך איז אַ מיטגליד פון דעם שטעלן Created אין דעם פֿונקציע, 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 קאַנער האַרריס: יאָ. 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 איר זאל האָבן שטעלן 2 ן אַזאַ וואָס N איז אין אָדער N איז אין ז. 473 00:26:45,999 --> 00:26:48,290 ענלעך טהינג-- דעם נאָוטיישאַן איז מענט צו זיין סוגעסטיוו 474 00:26:48,290 --> 00:26:49,630 פון וואָס מאַטאַמאַטיקאַל נאָוטיישאַן. 475 00:26:49,630 --> 00:26:51,880 סטיווען קרעווסאָן: און איר קענען צולייגן קייפל פּרעדיקאַץ 476 00:26:51,880 --> 00:26:56,250 און קייפל Filters אין אַ רשימה קאַמפּריכענשאַן, וואָס איז גאַנץ פייַן. 477 00:26:56,250 --> 00:27:01,800 אַלדזשאַבריייק טיפּעס-- מיר וועט נישט זאַמענ לאַנג דאָ. 478 00:27:01,800 --> 00:27:04,840 עס ס ניט אַ גוט ייַנפאַל אין Haskell אָדער אַ גוט, קלאָר ווי דער געדאנק 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 אַזוי אַז גיט אונדז אַ וועג פון בעת ​​עק אָדער אַ באַנד אויף אַ באַזונדער וועג. 489 00:27:54,680 --> 00:27:56,440 >> קאַנער האַרריס: אין אנדערע Haskell יגזאַמפּאַלז, 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 >> סטיווען קרעווסאָן: און איר קענען צושטעלן עטלעכע סאָרט פון טעות אָנזאָג ווי אַ ניט ויסצאָלן. 493 00:28:07,010 --> 00:28:11,020 און אַז ס דער הויפּט האַנטיק ווען איר ניטאָ טאן די איך / אָ אין Haskell. 494 00:28:11,020 --> 00:28:12,044 אַז קענען זיין טריקס. 495 00:28:12,044 --> 00:28:13,960 קאַנער האַרריס: אָדער פֿאַר אַ ענלעך בייַשפּיל, טראַכטן 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 איז אַז עס ס ניט רעאַל-- אויסנעמען זענען ומגעלומפּערט, בייסיקלי, 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 >> סטיווען קרעווסאָן: אזוי איצט מיר באַקומען צו אן אנדער מיינונג-בענדינג זאַך 506 00:28:42,990 --> 00:28:49,160 וועגן Haskell, וואָס איז מוסטער וואָס ריכטן און פונקציאָנירן זוך. 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 און דעמאָלט מיר זען אויב מיר באַקומען אַ שריט סיקוואַנס מיט אַ V פֿאַר באַנד אַרגומענט, 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 ווידער, דעם איז אַ קליין ביסל דיליבראַטלי ינקאָנסיסע 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 וואָס איז נאָר צו קאָנסטרוקט-- די שורה פֿונקציע נעמט אַ רשימה פון מוזיק וואַלועס 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 דאס איז אַ גוט בייַשפּיל פון אַ מידי סיגנאַל פליסנדיק 559 00:31:51,320 --> 00:31:57,510 0-127, די זיבן ביטן פון אינפֿאָרמאַציע אַז קענען ווערן געטראגן. 560 00:31:57,510 --> 00:32:00,650 >> און טהענ-- מיר געזען עס זייער בעקיצער, אָבער די אַלגעמיינע מידי 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 עס ס אַ ינקרעדאַבלי ווידער קייט פון סינטאַסייזערז און ווסט ינסטראַמאַנץ. 565 00:32:17,560 --> 00:32:21,510 אבער די מידי נאָרמאַל בלויז האט אַ ביסל, אָדער עטלעכע טוץ. 566 00:32:21,510 --> 00:32:22,799 און עטלעכע פון ​​זיי זענען מאָדנע. 567 00:32:22,799 --> 00:32:25,840 איך געדאַנק עס וואָלט זיין שפּאַס אויב מיר פּלייַעד די קיילע די מידי קיילע 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 און דעמאָלט קול וז, וואָס זענען אַ ביסל ומקלאָר אויף מיין שלעכט מידי 571 00:32:44,240 --> 00:32:46,410 סינטאַסייזער, אָבער זיי גוט. 572 00:32:46,410 --> 00:32:50,030 >> און דעמאָלט מיר זען דעם לאָזן און אין סינטאַקס פון Haskell, 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 האָבן צו ינטעראַקט מיט עטלעכע סאָרט פון ביבליאָטעק אָדער אַפּי און שטעלן אַלץ אַרויף, 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 און מיר ווע גערעדט וועגן טהעסע-- ניצן פאָלדס, Filters, לאַמבדאַ פֿעיִקייטן, 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 >> אזוי דעם איז גהסי. 612 00:35:02,670 --> 00:35:06,580 613 00:35:06,580 --> 00:35:09,121 און מיר וועט מאַסע אַ טעקע איך האָבן גערופֿן סאָנג.להס, 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 און דאָס איז אַזוי פייַן וועגן דאָינג-- אפֿשר וואָס 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 אבער עס האט די לאָואַסט פאָרהאַנט פון קיין אָפּעראַטאָר, וואָס Effectively 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 >> קאַנער האַרריס: עס ס בייסיקלי פֿונקציע זאַץ. 642 00:36:36,220 --> 00:36:40,026 און עס ינשורז אַז איר טאָן ניט האַווע-- אויב איר האָבן פֿעיִקייטן אָדער זייַט אָדער ינפיקס 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 >> סטיווען קרעווסאָן: אזוי מיר קאַנ-- ניצן אַז, מיר קענען רופן. 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 אַז ס די העליקאָפּטער, די מידי העליקאָפּטער. 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 איך מאַפּט טהעמ-- ווייַל זיי ניטאָ טייל פון אַז ינומערייטיד קלאַס, 662 00:37:49,490 --> 00:37:51,500 איך מאַפּט זיי צו ינץ. 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 >> אזוי אויב איר טראַכטן אַבאָוט-- אפֿשר אַ שפּאַס וועג צו ינסטרומענט אַ פּויק מאַשין 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 איר קענען זען אַז עס ס אַ פּונקט ליליפּאָנד פילע-- און דעם 696 00:40:10,280 --> 00:40:14,500 וועט זיין מיין סעגוע איבער צו קאָננאָר-- און אַ פּונקט מידי טעקע, 697 00:40:14,500 --> 00:40:18,610 און אַ פּונקט פּדף טעקע, וואָס איז וואָס ליליפּאָנד וועט לעסאָף דזשענערייט. 698 00:40:18,610 --> 00:40:23,770 >> אבער די ביסט יענע סקריפּס, און איך וועט נאָר לויפן זיי מיט זייער הילף אָפּציעס. 699 00:40:23,770 --> 00:40:28,090 אויב איר באַקומען די אַרויף און פליסנדיק מיט עוטערפּעאַ, איר קענען דזשענערייט אַ מידי טעקע. 700 00:40:28,090 --> 00:40:31,160 און דעמאָלט פון די מידי טעקע מיט דעם מידי 2לי פּראָגראַם, 701 00:40:31,160 --> 00:40:34,930 איר קענען דזשענערייט אַ ליליע פּאָנד טעקע, און דעמאָלט איר 702 00:40:34,930 --> 00:40:37,974 קענען דזשענערייט אַ פּדף פון די כעזשבן. 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 אָבער דאָס איז פרערע דזשאַק ווי דזשענערייטאַד דורך מיר אין עוטערפּעאַ. 707 00:41:02,570 --> 00:41:07,300 עס ס נאָר אין סי איך זאָל האָבן פיגורעד אויס וואָס די כאַק עס ס אַקטשאַוואַלי אין. 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 >> קאַנער האַרריס: OK זאל ס זען. 711 00:41:15,780 --> 00:41:19,480 712 00:41:19,480 --> 00:41:21,419 האט איר דערמאָנען לערנען איר Haskell? 713 00:41:21,419 --> 00:41:22,460 סטיווען קרעווסאָן: טאַקע יאָ. 714 00:41:22,460 --> 00:41:23,480 טשעק אויס לערנען איר Haskell. 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 >> קאַנער האַרריס: אזוי עס ס אָנליין. 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 סטיווען קרעווסאָן: עס ס ילאַסטרייטאַד, אויך. 722 00:41:38,690 --> 00:41:39,440 קאַנער האַרריס: אַזוי וואָס איז ליליפּאָנד? 723 00:41:39,440 --> 00:41:42,480 עס ס אַ דעקלאַראַטיווע פּראָגראַממינג שפּראַך פֿאַר מוזיק טייפּסעטינג. 724 00:41:42,480 --> 00:41:45,480 אַזוי דעקלאַראַטיווע-- איר קענען טראַכטן פון זאכן ווי HTML, 725 00:41:45,480 --> 00:41:50,900 ווו איר ניטאָ ניט סייַינג-- 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 און עס ספּיץ אויס די ווונדערלעך קוקן פּדף סקאָרז. 732 00:42:05,570 --> 00:42:08,250 איר קענען אויך באַקומען פּנג פֿאָרמאַט אָדער וועלכער. 733 00:42:08,250 --> 00:42:10,300 א גוט וועג צו טראַכטן פון דעם איז דורך אַנאַלאַדזשי 734 00:42:10,300 --> 00:42:16,620 איז אַז לייטעקס איז סאָרט פון ווי לילליפּאָנד, אָבער פֿאַר נאָר פּראָסט טייפּסעטינג. 735 00:42:16,620 --> 00:42:20,360 אזוי אַנשטאָט אָפ-- עס ס ניט וויסיוויג, וואָס איר זען 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 און באַקומען אויס פּדפס שפּעטער. 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 איינער, עס טוט קוקן אַ פּלאַץ ניסער, ווייַל לילליפּאָנד קענען אַקטשאַוואַלי 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 >> אַזוי וואָס איז ליליפּאָנד-- קאָמפּיוטער graphics איז שווער. 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 איר קענען עפענען אַרויף סיבעליוס מיט לעצט און גיין צו טעקע, עקספּאָרט ווי פּדף זיך, 759 00:43:35,020 --> 00:43:37,600 אָבער איר קענען ניט טאַקע רופן אַז פון אַ שריפט. 760 00:43:37,600 --> 00:43:40,440 לילליפּאָנד, איר קענען רופן פון יענע סקריפּס. 761 00:43:40,440 --> 00:43:44,397 איר קען לייכט יטעראַטע לילליפּאָנד מיט לייטעקס. 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 אויב איר ווילן צו קוק זיך אַ לילליפּאָנד בוך, 765 00:43:50,070 --> 00:43:53,760 עס ס אַ פּראָגראַם וואס קומט מיט דיין לילליפּאָנד פאַרשפּרייטונג, 766 00:43:53,760 --> 00:43:57,030 און עס ס פֿאַר יטעראַטינג לילליפּאָנד פראַגמענץ אין לייטעקס 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 מיט מוזיק, ניט נאָר קס50. 771 00:44:05,770 --> 00:44:09,320 איך ווע געניצט לילליפּאָנד פֿאַר אַלע פון מיין זאַץ פּראַדזשעקס 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 פּאַטינג קייפל שורות אין דער זעלביקער שטעקן, ווי ליריק ונדערסעטטינג אַרבעט. 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 פלייט דורך [ינאָדאַבאַל], וואס איז אַ לאָנגטימע-- וואס 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 און ער שרייבט עטלעכע מוזיק וואס האט זייער קאָמפּליצירט נאָוטיישאַן אַז לילליפּאָנד 794 00:45:16,920 --> 00:45:20,500 קענען נאַנדאַלעס שעפּן זייער נייסלי. 795 00:45:20,500 --> 00:45:26,030 >> אזוי נאָר צו געבן איר אַ זינען פון וואָס דעם זאַך ס קייפּאַבילאַטיז אַרע-- אַזוי 796 00:45:26,030 --> 00:45:28,960 די ינטערנאַלס פון לילליפּאָנד זענען זייער קאָמפּליצירט. 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 אבער די גרונט געדאַנק איז אַז אויף די לאָואַסט מדרגה, די אַטאָמס פון לילליפּאָנדס 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 אבער בייסיקלי, אַ סכעמע אן אנדער Functional 830 00:47:06,900 --> 00:47:09,500 פּראָגראַממינג שפּראַך, מער אָדער ווייניקער. 831 00:47:09,500 --> 00:47:10,800 >> סטיווען קרעווסאָן: די בונד-אין. 832 00:47:10,800 --> 00:47:12,690 >> קאַנער האַרריס: יאָ. 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 און עס ס זייער האַנטיק פֿאַר לילליפּאָנד פֿאַר פאַרשידן טעכניש סיבות. 836 00:47:26,590 --> 00:47:30,317 >> און אַזוי אויב איר ווילן צו מאַכן פּשוט טוויקס אָפענגיק אויף קאָנדיטיאָנאַלס, 837 00:47:30,317 --> 00:47:32,900 פֿאַר עקסאַמפּלע-- עס ס זיכער צושטאַנד פון אַ כעזשבן אַז ס באגעגנט, 838 00:47:32,900 --> 00:47:36,495 מאַכן אָלטעריישאַנז צו די אויסלייג אָדער ווהאַטנאָט-- דעמאָלט 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, ג, וועלכער. 856 00:48:15,710 --> 00:48:18,910 אויב איר ווילן צו טאָן אַקסידענטאַלס, איר סופפיקס איז אָדער עס. 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 עס וועט אויטאָמאַטיש ווערן פּלאַעק אין די אָקטאַוו קלאָוסאַסט צו די פֿריִערדיקע איינער. 861 00:48:34,080 --> 00:48:37,624 און אויב איר ווילן צו שפּרינגען מער ווי אַ פיפטה-- זאָגן 1/5 אָדער מאָרע-- 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 >> אויב איר ווילן צו נעמען די צייַט צו קאָפּיע אַז מוסטער פון לילליפּאָנד 871 00:49:05,380 --> 00:49:07,530 קאָד אויף די פרייַערדיק גליטש אַראָפּ דאָ, און איר 872 00:49:07,530 --> 00:49:09,030 קענען שרייַבן עס פֿאַר לילליפּאָנד זיך. 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 אַזוי עס ס אנדערן טעכנאָלאָגיע גערופֿן מוזיק קסמל מיינטיינד 876 00:49:19,610 --> 00:49:22,030 דורך גאָר אַנדערש מענטשן. 877 00:49:22,030 --> 00:49:28,150 קסמל איז אַ טעקסטשאַוואַל דאַטע סטרוקטורע-- איך זאָל ניט זאָגן דאַטע סטרוקטורע-- זאָגן 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, למשל, איז אַ טיפּ פון קסמל. 881 00:49:37,050 --> 00:49:41,090 און איר קענען זאָגן קסמל ווייַל זיי האט אַלע די ווינקל בראַקאַץ און ווינקל 882 00:49:41,090 --> 00:49:44,700 קאַנטיקער צעהאַקן מאַרקס אַז ווייַזן דאַטע fields. 883 00:49:44,700 --> 00:49:47,390 >> איך טאָן ניט האָבן אַ קאָד לעמאָשל פון מוזיק קסמל. 884 00:49:47,390 --> 00:49:50,450 איר קענען געפֿינען עס זיך. 885 00:49:50,450 --> 00:49:53,735 באַסיקאַללי, די סיבה איר זאל וועלן צו נוצן קסמל ווי די ינטערמידייט בינע 886 00:49:53,735 --> 00:49:55,980 איז, ערשטער פון אַלע, עס ס אַ ויסבייַט פֿאָרמאַט 887 00:49:55,980 --> 00:50:02,301 פֿאַר בייסיקלי עווערי-- איך זאָל ניט זאָגן יעדער, אָבער אַ פּלאַץ פון פאַרשידענע כעזשבן 888 00:50:02,301 --> 00:50:02,800 שרייבערס. 889 00:50:02,800 --> 00:50:04,966 אַזוי אויב איר שרייַבן אין מוזיק קסמל, ניט נאָר קענען לילליפּאָנד 890 00:50:04,966 --> 00:50:08,080 לייענען עס מיט די הילף פון דעם אַוקסילאַרי פּראָגראַם געהייסן מוזיק קסמל צו לי, 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 עס זאל זיין גרינגער צו שרייַבן אויס צו מוזיק קסמל ווי צו לילליפּאָנד 894 00:50:18,820 --> 00:50:22,410 און פּונקט פאַרלאָזנ זיך מוזיק קסמל צו לי צו טאָן די קאַנווערזשאַן. 895 00:50:22,410 --> 00:50:24,282 >> איך טאָן ניט טראַכטן [ינאָדאַבאַל] האט מוזיק קסמל. 896 00:50:24,282 --> 00:50:25,490 סטיווען קרעווסאָן: עס טוט נישט. 897 00:50:25,490 --> 00:50:26,340 עמעצער איז ארבעטן אויף עס, כאָטש. 898 00:50:26,340 --> 00:50:27,090 >> קאַנער האַרריס: גוט. 899 00:50:27,090 --> 00:50:31,040 עוטערפּעאַ טוט נישט האָבן אַ מוזיק קסמל רעזולטאַט פֿונקציע נאָך. 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 >> סטיווען קרעווסאָן: איך וואָלט ליבע אַז. 903 00:50:40,992 --> 00:50:43,450 קאַנער האַרריס: אויך, בייסיקלי, יעדער פּראָגראַממינג שפּראַכן 904 00:50:43,450 --> 00:50:46,610 אַז ס 'ווערט זייַן זאַלץ שוין האט אַ קסמל ביבליאָטעק, 905 00:50:46,610 --> 00:50:51,030 אַזוי איר קענען ינעווייניק גער אַלע פון דיין מוזיק אין עטלעכע כייפעץ 906 00:50:51,030 --> 00:50:54,120 וואָס די קסמל ביבליאָטעק קענען שרייַבן אויס אַז וואָלט דאַרפן ווייניקערע 907 00:50:54,120 --> 00:50:57,470 אָלטעריישאַנז צו אייער ינערלעך ביניען פֿאַר וועלכער מוזיק אַבדזשעקס איר 908 00:50:57,470 --> 00:51:00,310 ווילן צו שרייַבן ווי שרייבט עס גלייַך אין לילליפּאָנד וואָלט. 909 00:51:00,310 --> 00:51:04,380 דעמאָלט נאָר דרוקן עס אויס מיט קסמל מיט די קסמל ליבראַריעס אין דיין שפּראַך, 910 00:51:04,380 --> 00:51:07,260 וואָס וועט גאַראַנטירן אַז עס ס סינטאַקטיקאַללי ריכטיק און אַלץ, 911 00:51:07,260 --> 00:51:08,720 און דעמאָלט גער עס צו לילליפּאָנד. 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 >> [ינאָדאַבאַל], אן אנדער אַוקסילאַררי טעכנאָלאָגיע. 916 00:51:16,370 --> 00:51:21,700 דעם איז בייסיקלי טעק וואָרקס אָדער טעק סטודיאָ פֿאַר לילליפּאָנד. 917 00:51:21,700 --> 00:51:25,380 אזוי עס Offers העלפן מיט סינטאַקס, מיט טעמפּלאַטעס 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 און פּדף אין אנדערן פֿענצטער און דריקט אויף ערטער אין די פּדף 921 00:51:37,350 --> 00:51:40,650 צו שפּרינגען צו די באַטייַטיק ספּאַץ אין אייער מקור קאָד. 922 00:51:40,650 --> 00:51:45,330 דאס איז מער נוצלעך אויב איר ניטאָ אַקטשאַוואַלי שרייבט לילליפּאָנד טעקעס זיך 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 לילליפּאָנד מאַנואַלס-- לילליפּאָנד האט ויסגעצייכנט דאַקיומענטיישאַן אויף זייַן וועבזייַטל. 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 אויב איר ווילן צו נוצן מוזיק קסמל, עס ס אַז URL, musicxml.com/tutorial. 936 00:52:21,950 --> 00:52:27,960 >> און דעריבער אויב איר דאַרפֿן צו לערנען סכעמע ווייַל איר אַקטשאַוואַלי ווילן צו נוצן 937 00:52:27,960 --> 00:52:30,960 די סקריפּטינג פאַסיליטיעס אין לילליפּאָנד, דעמאָלט דאָרט ס אַ [ינאָדאַבאַל] גערופֿן 938 00:52:30,960 --> 00:52:32,918 סטרוקטורעד ינטערפּרעטאַטיאָן פון קאָמפּיוטער מגילה, 939 00:52:32,918 --> 00:52:35,820 וואָס איז ניט בלויז די רגע גרעסטע קס לערנבוך אלץ ווריטטענ-- 940 00:52:35,820 --> 00:52:39,770 געפינען מיר דערנאָכדעם אויב איר ווילן צו וויסן וואָס איך טראַכטן די גרעסטע איין יס-- 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 >> סטיווען קרעווסאָן: נו, איר קענען שרייַבן אויס צו עטלעכע וואַוו טעקע אין עוטערפּעאַ. 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 מאַכט אייער אייגן ווערייישאַנז פון פרערע דזשאַק דורך קס50 כייוו מיינונג. 952 00:53:15,590 --> 00:53:17,095 עס וואָלט זיין גרויס. 953 00:53:17,095 --> 00:53:18,220 קאַנער האַרריס: ווער עס יז אַנדערש? 954 00:53:18,220 --> 00:53:20,261 סטיווען קרעווסאָן: מיר דאַרפֿן אַ בעסער באַס פּויק, אויך. 955 00:53:20,261 --> 00:53:21,935 עס ס טאַקע שלעכט. 956 00:53:21,935 --> 00:53:26,565 >> תּלמיד: עוטערפּעאַ האט ניט בלויז דער זאַץ זייַט, אָבער סיגנאַל-- 957 00:53:26,565 --> 00:53:27,440 סטיווען קרעווסאָן: יא. 958 00:53:27,440 --> 00:53:30,100 אין פאַקט, די אַרבעט איך האט אין עוטערפּעאַ ווען איך 959 00:53:30,100 --> 00:53:33,450 גענומען טהיס-- עס ס אַ גראַדזשאַוואַט קורס בייַ יאַלע אַז 960 00:53:33,450 --> 00:53:35,900 ניצט יט-- געווען אויף סאָונד סינטהעסיס. 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 קאַנער האַרריס: דאַנק אַזוי פיל. 978 00:54:48,940 --> 00:54:50,140 דאַנק פֿאַר קומען. 979 00:54:50,140 --> 00:54:52,400 און איך בין שטענדיק גרייט צו נעמען שאלות דורך עמאַיל-- 980 00:54:52,400 --> 00:54:55,020 connorharris@college.harvard.edu. 981 00:54:55,020 --> 00:54:57,020 >> סטיווען קרעווסאָן: יאָ. 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