زبانهایبروامهوویسی Haskell تمریهعملیسوم جَاة توزیيّب را ثِ آدرس [email protected]ثفزستیذ .فبیل HW3.hsرا در یک فبیل zip ثِ ًبم = # ( STD#شوبرُ داًشجَیی) قزار دّیذ .هَضَع ایهیل ًیش ثبیذ حتوب ثِ فزهت HW#_STD#ثبشذ .در صَرتی کِ توزیي را ثِ صَرت گزٍّی اًجبم دادُایذ ثِ تَضیحبت دادُ شذُ در کالس هزاجعِ کٌیذ! ّزگًَِ سَال در هَرد توزیي را ثِ آدرس [email protected]ثفزستیذ. سعی کٌیذ کذتبى ثب تَجِ ثِ ًَ styling guidelineشتِ شذُ ثبشذ. کذ شوب ثبیذ حتوب ثذٍى ّیچگًَِ ٍارًیٌگ کبهپبیل شَد( .ثِ styling guidelineهزاجعِ کٌیذ). هْلت ارسبل ایي توزیي تب سبعت ۲۳:۵۹روز۴مآذر است. قسمتاول:کَتبًَُیسی کبری کِ در ایي توزیي ثبیذ اًجبم دّیذ ثسیبر سبدُاست .شوب ثبیذ ۳تبثعی کِ در اداهِ هیشَد را در کَتبُتزیي حبلت هوکي پیبدُسبسی کٌیذ. قواویه ثزای ّزکذام اس تَاثع شوب باید ثب گذاشتي کبهٌتّبی هٌبست ًحَُی کبر کذتبى را تَضیح دّیذ .کدهایبدونتوضیح هیچومرهایازایهتمریهومیگیرود .در ایي توزیي استفبدُ اس ّزچیش هَجَد در haskell-platformهجبس است اهب شوب ثبیذ ثب کبهٌت خَدتبى ًشبى دّیذ کِ اس ًحَُی کبر کذی کِ ًَشتِایذ خجز داریذ .در ًتیجِ کذ خَدتبى را کبهل تَضیح دّیذ. هتي کبهٌتّب جش عَل کذ شوب حسبة ومیشود. هتي هزثَط ثِ ّtype signatureب جش عَل کذ شوب حسبة ومیشود. دستَرّبی importجش عَل کذ شوب حسبة ومیشود. کاراکترهای whitespaceجش عَل کذ شوب حسبة ومیشود .در ًتیجِ فزهت ٍ indentationرا در کذ خَد رعبیت کٌیذ. هیتَاًیذ تبثعّبی جذیذی را خَدتبى اضبفِ کٌیذ (هوکي است ثِ ایي تزتیت کذ شوب کَتبُتز شَد). اس ثیي توزیيّب ۲۰ ،درصذ کَتبُتزیي کذّب ثِ تزتیت کَتبُثَدى ًوزُی اضبفِ خَاٌّذ گزفتّ .نچٌیي ثزای ّزکذام اس تبثعّبی تَضیحدادُشذُ کَتبُتزیي پیبدُسبسی ًوزُی اضبفِ خَاّذ گزفت .در ایي توزیي هیتَاًیذ تا۲۰۰درصد ًوزُی اضبفِ ثگیزیذ( .یعٌی در هجوَع ۳ثزاثز ًوزُی توزیي را کست کٌیذ). راهومایی تب جبیی کِ هیتَاًیذ اس تبثعّبی کتبةخبًِی استبًذارد استفبدُ کٌیذ .استفبدُ کزدى اس (هثال) mapخیلی کَتبُتز اس پیبدُسبسی کزدى آى است. ثِ عَر هشخص سعی کٌیذ ثِ جبی ًَشتي تبثعّبی ثبسگشتی اس تبثعّبیی استفبدُ کٌیذ کِ ایي هفبّین ثبسگشتی را در خَد دارًذ. هیتَاًیذ ثزای اًجبمدادى ایي توزیي اثتذا تبثعّب را پیبدُسبسی کٌیذ ٍ ثعذ سعی کٌیذ عَل آى را کن کٌیذ. هغوئي ثبشیذ کِ تبثعّبی شوب ثزای همهی ٍرٍدیّب جَاة درست را هیدٌّذ ًِ ،فقظ ٍرٍدیّبیی کِ در صَرت سَال آهذُ است. در صَرتی کِ ثب تبثعّبی خَاستِشذُ هشکلی داریذ ثب ایهیل سَال خَد را هغزح کٌیذ تمریهاول :ثبسی لیلی در ایي توزیي ثبیذ یک تبثع ثِ صَرت ]]skips :: [a] -> [[a ثٌَیسیذ .دقت کٌیذ کِ خزٍجی ایي تبثع یک لیست اس لیستّب است .اٍلیي لیست خزٍجی ثبیذ ّوبى لیست ٍرٍدی ثبشذ .دٍهیي لیست خزٍجی ثبیذ اعضبی لیست ٍرٍدی را یکی در هیبى داشتِثبشذ .سَهیي لیست خزٍجی دٍتب در هیبى ٍ ّویيعَر تب آخز .ثِ هثبلّب دقت کٌیذ: ]”skips “ABCD” == [“ABCD”, “BD”, “C”, “D ]”!“ skips “hello!” == [“hello!”, “el!”, “l!”, “l”, “o”, ]]skips [1] == [[1 ]]skips [True, False] == [[True, False], [False ][ == ][ skips دقت کٌیذ کِ عَل لیست خزٍجی ّویشِ ثب عَل لیست ٍرٍدی ثزاثز است. تمریهدوم :هبکشیون هحلی یک هبکشیون هحلی در یک لیست عضَی است ثِ صَرت اکیذ اس عضَ قجل ٍ عضَ ثعذ خَد ثشرگتز ثبشذ. هثال در لیست ] [2,3,4,1,5تٌْب هبکشیون هحلی 4است .دقت کٌیذ کِ 5هبکشیون هحلی ًیست سیزا عضَ ثعذ ًذارد .تبثع سیز را ثٌَیسیذ: ]localMaxima :: [Integer] -> [Integer ایي تبثع ثبیذ ّوِی هبکشیونّبی هحلی لیست ٍرٍدی را ثِ ّوبى تزتیت ثبسگزداًذ. ]localMaxima [2,9,5,6,1] == [9,6 ]localMaxima [2,3,4,1,5] == [4 ][ == ]localMaxima [1,2,3,4,5 تمریهسومّ :یستَگزام ثزای ایي توزیي ثبیذ یک تبثع ثِ صَرت histogram :: [Integer] -> String ثٌَیسیذ کِ یک لیست اس اعذاد 0تب 9هیگیزد ٍ یک ّیستَگزام عوَدی ثبسهیگزداًذ کِ ًشبى هیدّذ ّز عذد چٌذثبر تکزار شذُاست .هیتَاًیذ فزض کٌیذ کِ اعذاد ٍرٍدی حتوب اس اعذاد 0تب ّ 9ستٌذ (یعٌی السم ًیست حبلتّبی دیگز را چک کٌیذ). رشتِای کِ تَسظ تبثع ثبسگزداًذُ هیشَد ثبیذ دقیقب هبًٌذ هثبلّبی سیز ثبشذ: historgram [1,1,1,5]: * * * * ========== 0123456789 histogram [1,4,5,4,6,6,3,4,2,4,9]: * * * * * ****** ========== 0123456789 دقت کٌیذ کِ اگز در ghciدستَری هبًٌذ ]ٍ histogram [3,5ارد کٌیذ احتوبال خزٍجیای کِ دریبفت هیکٌیذ چیشی ثِ صَرت سیز خَاّذ ثَد: ”“ * * \n==========\n0123456789 اگز هیخَاّیذ خَد ّیستَگزام کشیذُ شَد اس )] putStr (histogram [3,5استفبدُ کٌیذ کِ حزٍجی تبثع را «چبح» هیکٌذ.
© Copyright 2025 Paperzz