ๅทฒ่งฃๅ†ณ๏ผšๆฅ่‡ช GitHub ็š„ cabal ๅŒ…

ๅฝ“็„ถ๏ผ ่ฟ™ๆ˜ฏๆ‚จๆƒณ่ฆ็š„ๆ–‡็ซ ใ€‚

-

Haskell ็š„ Cabal ๅŒ…ๆ˜ฏ Haskell ๅผ€ๅ‘ไธญๅฟ…ไธๅฏๅฐ‘็š„ๅทฅๅ…ทใ€‚ ๅฎƒๅฏ็”จไบŽ่ฎพ็ฝฎๆ–ฐ็š„ Haskell ้กน็›ฎใ€็ฎก็†ไพ่ต–้กนๅ’Œๆž„ๅปบๅŒ…ใ€‚ ๅฎƒ่ฟ˜ๅฏไปฅไปŽGithub่Žทๅ–ๅŒ…๏ผŒไฝฟๆ‚จ็š„ๅผ€ๅ‘่ฟ‡็จ‹ๆ›ดๅŠ ้กบๅˆฉใ€‚ Cabal ๆ˜ฏไธ€ไธช็”จไบŽๆž„ๅปบๅ’Œๆ‰“ๅŒ… Haskell ๅบ“ๅ’Œ็จ‹ๅบ็š„็ณป็ปŸใ€‚ ๅฎƒไธบๅบ”็”จ็จ‹ๅบๅ’Œๅบ“็š„ไฝœ่€…ๅฎšไน‰ไบ†ไธ€ไธช้€š็”จๆŽฅๅฃ๏ผŒไปฅ่กจ่พพๅ…ถไปฃ็ ๅฏนๅ…ถไป–ๅŒ…็š„ไพ่ต–ๅ…ณ็ณปใ€‚ Cabal ็š„้žๅ‡กไน‹ๅค„ๅœจไบŽๅฎƒๅฆ‚ไฝ•ไธŽ Hackage ้›†ๆˆ๏ผŒHackage ๆ˜ฏ็”จ Haskell ็ผ–ๅ†™็š„ๅผ€ๆบ่ฝฏไปถ็š„ๅ…ฌๅ…ฑ้›†ๅˆใ€‚

้˜…่ฏปๆ›ดๅคš

ๅทฒ่งฃๅ†ณ๏ผšๅœฐๅ›พ

ๅœจๅ‡ฝๆ•ฐๅผ็ผ–็จ‹้ข†ๅŸŸ๏ผŒmap ๆ˜ฏไธ€็งๅŸบๆœฌ็š„้ซ˜้˜ถๅ‡ฝๆ•ฐ๏ผŒๅฎƒๅฐ†็ป™ๅฎšๅ‡ฝๆ•ฐๅบ”็”จไบŽๅˆ—่กจ็š„ๆฏไธชๅ…ƒ็ด ๏ผŒไปฅ็›ธๅŒ็š„้กบๅบ็”Ÿๆˆ็ป“ๆžœๅˆ—่กจใ€‚ ๆ˜ ๅฐ„็š„ๅผบๅคง็ฎ€ๅ•ๆ€งๆž„ๆˆไบ†ๅ‡ฝๆ•ฐๅผ็ผ–็จ‹่งฃๅ†ณ้—ฎ้ข˜็š„ๆ–นๆณ•็š„ๆ ธๅฟƒ๏ผŒ็‰นๅˆซๆ˜ฏๅœจๅƒ่ฟ™ๆ ท็š„่ฏญ่จ€ไธญ ๅ“ˆๆ–ฏๅ…‹ๅฐ”.

ๆˆ‘ไปฌๅฏไปฅ้€š่ฟ‡ไฝฟ็”จ้€’ๅฝ’ๆฅๅฎšไน‰Haskellไธญ็š„mapๅ‡ฝๆ•ฐใ€‚ ๆœฌ่ดจไธŠ๏ผŒmap ๅฐ†ๅ‡ฝๆ•ฐๅบ”็”จไบŽๅˆ—่กจ็š„ๅคด้ƒจ๏ผŒ็„ถๅŽ้€’ๅฝ’ๅœฐๅฐ†map ๅบ”็”จไบŽๅˆ—่กจ็š„ๅ…ถไฝ™้ƒจๅˆ†๏ผˆๅฐพ้ƒจ๏ผ‰ใ€‚ ๅฝ“ๅˆ—่กจไธบ็ฉบๆ—ถ๏ผŒmap ไป…่ฟ”ๅ›žไธ€ไธช็ฉบๅˆ—่กจใ€‚ ่ฟ™ๅฏผ่‡ดไบ†ไธ€็งๆ›ดๅŠ ไบบๆ€งๅŒ–็š„โ€œ้—ฎ้ข˜->่งฃๅ†ณๆ–นๆกˆโ€ๅค„็†็ผ–็จ‹ไปปๅŠก็š„่Œƒไพ‹๏ผŒ่€Œไธๆ˜ฏๅ‘ฝไปคๅผ่ฏญ่จ€ไธญๅธธ่ง็š„ๅŸบไบŽ่ฟญไปฃ็š„ๆ–นๆณ•ใ€‚

map _ [] = []
map f (x:xs) = f x : map f xs

้˜…่ฏปๆ›ดๅคš

ๅทฒ่งฃๅ†ณ๏ผšๅฆ‚ไฝ•ๅœจ Visual Studio ไปฃ็ ไธญ่ฟ่กŒ Haskell

่ฟ‘ๅนดๆฅ๏ผŒ็ผ–็จ‹็š„ๆ—ถๅฐšๅทฒ็ปๅ‘็”Ÿไบ†ๅทจๅคง็š„ๅ˜ๅŒ–๏ผŒ่ถŠๆฅ่ถŠๅคš็š„ไบบๅ€พๅ‘ไบŽๅ‡ฝๆ•ฐๅผ็ผ–็จ‹๏ผŒๅ› ไธบๅฎƒ็š„็ฎ€ๅ•ใ€้ซ˜ๆ•ˆๅ’Œไผ˜้›…ใ€‚ ๅ…ถไธญไธ€็ง้ข†ๅ…ˆ็š„่ฏญ่จ€ๆ˜ฏ ๅ“ˆๆ–ฏๅ…‹ๅฐ”ใ€‚ Haskell ๆ˜ฏ็บฏๅ‡ฝๆ•ฐๅผ็š„๏ผŒๅ…ทๆœ‰ๅผบๅคง็š„้™ๆ€็ฑปๅž‹ๅ’Œๆƒฐๆ€งๆฑ‚ๅ€ผ๏ผŒๅ…่ฎธๆ‚จ้‡็”จไปฃ็ ๅนถ้˜ฒๆญข็ผ–ๅ†™ๅ†—ไฝ™ไปฃ็ ใ€‚ Haskell ่ฟ˜ๅ…่ฎธๆ‚จ็ผ–ๅ†™็ฎ€ๅ•ใ€ๆธ…ๆ™ฐไธ”ๅฏ็ปดๆŠค็š„ไปฃ็ ใ€‚ ้ซ˜ๆ•ˆ็ผ–็ ็š„ๅ…ณ้”ฎ่ฆ็ด ไน‹ไธ€ๆ˜ฏๆ‹ฅๆœ‰่‰ฏๅฅฝ็š„็Žฏๅขƒ่ฎพ็ฝฎ๏ผŒๅฏนไบŽ Haskell ๆฅ่ฏด๏ผŒ่ฟ˜ๆœ‰ไป€ไนˆๆฏ” Visual Studioไปฃ็ .

้˜…่ฏปๆ›ดๅคš

ๅทฒ่งฃๅ†ณ๏ผšhaskell ไธญ็š„ $

ๅฝ“็„ถ๏ผŒๆˆ‘ๅฐ†้€š่ฟ‡ไป‹็ปใ€้—ฎ้ข˜่งฃๅ†ณๆ–นๆกˆใ€ๅˆ†ๆญฅไปฃ็ ่งฃ้‡ŠไปฅๅŠไธŽ Haskell ๅบ“ๆˆ–็›ธๅ…ณๅ‡ฝๆ•ฐ็›ธๅ…ณ็š„ๆ ‡้ข˜็š„ไธคไธช้ƒจๅˆ†ๆฅ่งฃ้‡Š Haskell ไธญ็พŽๅ…ƒ็ฌฆๅท ($) ็š„ไฝฟ็”จ๏ผŒๆˆ‘ๅฐ†่ฏทๅŠกๅฟ…้ตๅฎˆๆ‚จๆœ‰ๅ…ณ SEO ไผ˜ๅŒ–็š„ๅ…ถไป–่ฆๆฑ‚ใ€‚

Haskell ๆ˜ฏไธ€็งๆ ‡ๅ‡†ๅŒ–็š„ใ€ๅ…ทๆœ‰้žไธฅๆ ผ่ฏญไน‰็š„็บฏๅ‡ฝๆ•ฐๅผ็ผ–็จ‹่ฏญ่จ€๏ผŒไปฅ Haskell Curry ๅ‘ฝๅใ€‚ ๅœจ Haskell ไธญ๏ผŒ($) ่ฟ็ฎ—็ฌฆ็”จไบŽๅ‡ฝๆ•ฐๅบ”็”จใ€‚ ่ฟ็ฎ—็ฌฆๆœฌ่บซๅชๆ˜ฏไธ€ไธชๅ‡ฝๆ•ฐ๏ผŒๅฎƒๆŽฅๅ—ไธ€ไธชๅ‡ฝๆ•ฐๅ’Œๅฆไธ€ไธชๅ‚ๆ•ฐๅนถๅฐ†่ฏฅๅ‡ฝๆ•ฐๅบ”็”จไบŽ่ฏฅๅ‚ๆ•ฐใ€‚ ่ฟ™ไธช่ฟ็ฎ—็ฌฆ็š„ๆœ‰่ถฃไน‹ๅค„ๅœจไบŽๅฎƒ็š„ไฝŽๅณๅ…ณ่”็ป‘ๅฎšไผ˜ๅ…ˆ็บงใ€‚ ่ฟ™ๅฏ็”จไบŽๅ‡ๅฐ‘่กจ่พพๅผไธญๆ‰€้œ€ๆ‹ฌๅท็š„ๆ•ฐ้‡ใ€‚

้˜…่ฏปๆ›ดๅคš

ๅทฒ่งฃๅ†ณ๏ผšๅฆ‚ไฝ•ๅœจ manjarp ไธญๅฎ‰่ฃ… stack haskell

ๅœจ Manjaro ไธญๅฎ‰่ฃ… Stack Haskell ๅฏ่ƒฝๆ˜ฏไธ€ไธช้žๅธธๆœ‰่ถฃ็š„ๆ—…็จ‹ใ€‚ ๆ— ่ฎบๆ‚จๆ˜ฏ็ป้ชŒไธฐๅฏŒ็š„ Haskell ๅผ€ๅ‘ไบบๅ‘˜๏ผŒ่ฟ˜ๆ˜ฏๅˆšๅˆš่ตทๆญฅ๏ผŒๆ‹ฅๆœ‰ๆญฃ็กฎ็š„ๅผ€ๅ‘็ŽฏๅขƒๅฏนไบŽๆ‚จ็š„ๅทฅไฝœๆต็จ‹้ƒฝ่‡ณๅ…ณ้‡่ฆใ€‚ ๅœจๆœฌๆ–‡ไธญ๏ผŒๆˆ‘ๅฐ†ๆŒ‡ๅฏผๆ‚จๅฎŒๆˆๅœจ Manjaro ไธญ่ฎพ็ฝฎ Stack Haskell ็š„่ฟ‡็จ‹โ€”โ€”่ฟ™ๆ˜ฏไธ€ไธชๅ‡บ่‰ฒ็š„ใ€็”จๆˆทๅ‹ๅฅฝ็š„ๆ“ไฝœ็ณป็ปŸ๏ผŒ้žๅธธ้€‚ๅˆ็จ‹ๅบๅ‘˜ใ€‚

้˜…่ฏปๆ›ดๅคš

ๅทฒ่งฃๅ†ณ๏ผšๅŒฟๅๅ‡ฝๆ•ฐ

ๅŒฟๅๅŠŸ่ƒฝ้€šๅธธ็งฐไธบ lambda ๅ‡ฝๆ•ฐ๏ผŒๆ˜ฏๅ‡ฝๆ•ฐๅผ็ผ–็จ‹่ฏญ่จ€็š„็ป„ๆˆ้ƒจๅˆ†๏ผŒไพ‹ๅฆ‚ ๅ“ˆๆ–ฏๅ…‹ๅฐ”ใ€‚ ไธŽไผ ็ปŸๅ‡ฝๆ•ฐไธๅŒ๏ผŒๅŒฟๅๅ‡ฝๆ•ฐๆฒกๆœ‰ๅ็งฐใ€‚ ๅฎƒไปฌๆ˜ฏๅŠจๆ€ๅฎšไน‰็š„๏ผŒ้€šๅธธๅœจๅช้œ€่ฆไธ€ๆฌกๅ‡ฝๆ•ฐๆ—ถไฝฟ็”จใ€‚ ่ฎฉๆˆ‘ไปฌๆทฑๅ…ฅ็ ”็ฉถไธ€ไธชๅฏไปฅไฝฟ็”จๅŒฟๅๅ‡ฝๆ•ฐๆœ‰ๆ•ˆ่งฃๅ†ณ็š„้—ฎ้ข˜ใ€‚

้˜…่ฏปๆ›ดๅคš

ๅทฒ่งฃๅ†ณ๏ผšไบคไบ’ๅผ้€€ๅ‡บ

ไฝœไธบไธ€ๅๅœจ SEO ๅ’Œๆ—ถๅฐš้ข†ๅŸŸๆ‹ฅๆœ‰ไธฐๅฏŒ็ป้ชŒ็š„ Haskell ๅผ€ๅ‘ไบบๅ‘˜๏ผŒๆˆ‘ไบ†่งฃไปฅๆ—ถๅฐš้ฃŽๆ ผไบคไป˜ๅŠŸ่ƒฝไปฃ็ ็š„ๅฟ…่ฆๆ€งใ€‚ ็ผ–็จ‹ไธ–็•Œ็š„ไธป่ฆ่ถ‹ๅŠฟไธŽๆ—ถ่ฃ…็ง€ไธŠ็š„่ถ‹ๅŠฟ็›ธๅ‘ผๅบ”โ€”โ€”็ฎ€ๅ•ใ€ๅคๆ‚ๅ’Œๅˆ›ๆ–ฐใ€‚

ๅœจๆˆ‘ไปฌ็š„ Haskell ๅฎ‡ๅฎ™ไธญ๏ผŒไบคไบ’ๅผ้€€ๅ‡บ็ฑปไผผไบŽๆ—ถๅฐš็•Œ็š„ไธปๆ‰“ไบงๅ“๏ผŒๅณ Coco Chanel ๅœจ 1920 ๅนดไปฃๆŽจๅ‡บ็š„่‘—ๅ็š„โ€œๅฐ้ป‘่ฃ™โ€ใ€‚ ๅฎƒๆ˜ฏๆˆ‘ไปฌๆญฆๅ™จๅบ“ไธญ็š„ไธ€ไธชๅทฅๅ…ท๏ผŒๅฆ‚ๆžœไฝฟ็”จๆญฃ็กฎ๏ผŒๅฏไปฅไธบๆ— ๆ•ฐไปฃ็ ๆ‰ง่กŒ้—ฎ้ข˜ๆไพ›่งฃๅ†ณๆ–นๆกˆใ€‚

็Žฐๅœจ๏ผŒ่ฎฉๆˆ‘ไปฌๆทฑๅ…ฅ่งฃๅ†ณๆ‰‹ๅคด็š„้—ฎ้ข˜๏ผšไบคไบ’ๅผ้€€ๅ‡บใ€‚

ๆจกๅ—Main๏ผˆไธป๏ผ‰ๅœจๅ“ช้‡Œ
ๅฏผๅ…ฅ็ณป็ปŸ.้€€ๅ‡บ

ไธป่ฆ::IO()
ไธป่ฆ=ๅš
putStrLn โ€œไฝ ๅฅฝ๏ผ ่พ“ๅ…ฅไธ€ไบ›ๅ†…ๅฎน็„ถๅŽๆˆ‘ๅฐฑไผš้€€ๅ‡บใ€‚โ€
userInput <- getLine putStrLn("ไฝ ่ฏด๏ผš" ++ userInput) exitSuccess [/code]

ๅ‰–ๆžๆˆ‘ไปฌ็š„ Haskell ๅค–่ง‚

ๆˆ‘ไปฌ็š„ Haskell ่งฃๅ†ณๆ–นๆกˆ๏ผŒๅฐฑๅƒ Chanel ็š„ๅฐ้ป‘่ฃ™ไธ€ๆ ท๏ผŒ็ฎ€ๅ•่€Œไผ˜้›…ใ€‚ ๅฎƒไป…ไฝฟ็”จๅ‡ ไธชๅ…ณ้”ฎ้ƒจๅˆ†ไปฅๅคๆ‚็š„ๆ–นๅผ็ป„ๅˆๅœจไธ€่ตทใ€‚

ไธป่ฆๅŠŸ่ƒฝไปŽๅ‘็”จๆˆท็š„ไป‹็ปๅผ€ๅง‹๏ผˆ็ฑปไผผไบŽ่ท‘้“ๆจก็‰น็ป™ไบบ็•™ไธ‹็š„็‹ฌ็‰น็ฌฌไธ€ๅฐ่ฑก๏ผ‰ใ€‚ ็„ถๅŽ๏ผŒ่ฏฅๅ‡ฝๆ•ฐไผš่ฏทๆฑ‚่พ“ๅ…ฅๅนถไผ˜้›…ๅœฐๅค„็†ๅฎƒ๏ผŒๅฐฑๅƒไธ“ไธšๆจก็‰น็†Ÿ็ปƒๅœฐๅค„็†่กฃๆŸœๆ•…้šœไธ€ๆ ทใ€‚

้˜…่ฏปๆ›ดๅคš

ๅทฒ่งฃๅ†ณ๏ผšๆŸฅๆ‰พๅญ—็ฌฆไธฒไธญๅญๅญ—็ฌฆไธฒ็š„ไฝ็ฝฎ

ๅฅฝๅง๏ผŒ่ฎฉๆˆ‘ไปฌๅผ€ๅง‹ไบ†่งฃๅฆ‚ไฝ•ๅœจ Haskell ไธญๆŸฅๆ‰พๅญ—็ฌฆไธฒไธญ็š„ๅญๅญ—็ฌฆไธฒใ€‚

ๅ“ˆๆ–ฏๅ…‹ๅฐ” ๆ˜ฏไธ€็ง็บฏๅ‡ฝๆ•ฐๅผ็ผ–็จ‹่ฏญ่จ€๏ผŒไปฅๅ…ถ้ซ˜ๆฐดๅนณ็š„ๆŠฝ่ฑกๅ’ŒๅฏŒๆœ‰่กจ็ŽฐๅŠ›็š„่ฏญๆณ•่€Œ้—ปๅใ€‚ ๅค„็†ๅญ—็ฌฆไธฒๆ—ถ็š„ไธ€้กนๅธธ่งไปปๅŠกๆ˜ฏๅœจ่พƒๅคงๅญ—็ฌฆไธฒไธญๆŸฅๆ‰พๅญๅญ—็ฌฆไธฒ๏ผŒๅณ็กฎๅฎš็‰นๅฎšๅญ—็ฌฆๅบๅˆ—ๅ‡บ็Žฐ็š„็กฎๅˆ‡ไฝ็ฝฎใ€‚

้˜…่ฏปๆ›ดๅคš

ๅทฒ่งฃๅ†ณ๏ผš่ฆๅˆ—ๅ‡บ็š„ๅ…ƒ็ป„

ๅฝ“็„ถ๏ผŒๆˆ‘ๅทฒ็ปๅ‡†ๅค‡ๅฅฝ็ผ–ๅ†™ๆ‚จ็š„ Haskell Tuple to List ๆ•™็จ‹ไบ†ใ€‚ ่ฟ™้‡Œๆ˜ฏ๏ผš

ๅ…ƒ็ป„ ๆ˜ฏไธ€ไธช้‡่ฆๆ–น้ข Haskell ็ผ–็จ‹่ฏญ่จ€ใ€‚ ๅฎƒไปฌๆไพ›ไบ†ไธ€็งๅฐ†ๅคšไธชๅ€ผไธ€่ตทๅญ˜ๅ‚จๅœจไธ€ไธช็ป“ๆž„ไธญ็š„็ฎ€ๅ•ๆ–นๆณ•๏ผŒไฝ†ไธŽๅˆ—่กจไธๅŒ็š„ๆ˜ฏ๏ผŒ่ฟ™ไบ›ๅ€ผ้ƒฝๅฏไปฅๆ˜ฏไธๅŒ็š„็ฑปๅž‹ใ€‚ ไฝ†ๆ˜ฏ๏ผŒๆœ‰ๆ—ถๆ‚จๅฏ่ƒฝไผšๅ‘็Žฐๅ…ƒ็ป„ๅนถไธๆ˜ฏๆปก่ถณๆ‚จ้œ€ๆฑ‚็š„ๆœ€ไฝณ็ป“ๆž„๏ผŒ่€Œๆ‚จๅธŒๆœ›ๅฐ†ๅ…ถ่ฝฌๆขไธบๅˆ—่กจใ€‚ ๆœฌๆ–‡ๅฐ†ๆทฑๅ…ฅๆŽข่ฎจๅฆ‚ไฝ• ๅœจ Haskell ไธญๅฐ†ๅ…ƒ็ป„่ฝฌๆขไธบๅˆ—่กจ.

้˜…่ฏปๆ›ดๅคš