ๅทฒ่งฃๆฑบ๏ผšไพ†่‡ช 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 ไธญๅฐ‡ๅ…ƒ็ต„่ฝ‰ๆ›็‚บๅˆ—่กจ.

ไบ†่งฃๆ›ดๅคš