ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10

Π˜Π³Ρ€Π°Π΅ΠΌ Π² Haskell

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10

Π― Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π» врСмя изучая Haskell Π² послСдниС мСсяцы, ΠΈ ΠΌΠ½Π΅ каТСтся, Ρ‡Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги Π² этом занятии слоТнСС, Ρ‡Π΅ΠΌ это ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π° самом Π΄Π΅Π»Π΅. МнС ΠΏΠΎΠ²Π΅Π·Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ врСмя ΠΈ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС, ΠΈ Π² Facebook я ΠΏΡ€ΠΎΡˆΠ΅Π» курс ΠΏΠΎ Haskell ΠΎΡ‚ Bryan O’Sullivan, Π½ΠΎ Π’Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ смоТСтС Π²Π»ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΌΡƒ ΠΈ Π±Π΅Π· Ρ‡ΡƒΠΆΠΎΠΉ ΠΏΠΎΠΌΠΎΡ‰ΠΈ. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π² Haskell Π½Π° сайтС Try Haskell, Π° Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСбС GHC.

УстанавливаСм Haskell Platform (GHC)

The Haskell Platform β€” это Glasgow Haskell Compiler (GHC) ΠΈ стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Β«Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°Ρ†ΠΈΠΈΒ». GHC Π½Π΅ СдинствСнный компилятор Π₯аскСля, Π½ΠΎ Π’Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½. Другая рСализация, достойная внимания, Hugs, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ большС Π² акадСмичСских цСлях, Ρ‡Π΅ΠΌ Π² практичСских.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ написана для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Mac OS X 10.8 с установлСнным Homebrew (ΠΈ свСТСй вСрсиСй Xcode), Π½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Haskell Platform Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ просто. ВСкущая вСрсия Haskell Platform Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ 2012.4.0.0.

УстанавливаСм Cabal

Cabal β€” это ΠžΠ±Ρ‰Π°Ρ АрхитСктура Π‘Π±ΠΎΡ€ΠΊΠΈ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (Common Architecture for Building Applications and Libraries) для Π₯аскСля. Π’ ΠΏΠ°Ρ€Π΅ с Hackage, Cabal ΠΏΠΎΡ…ΠΎΠΆ ΠΏΠΎ смыслу Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ CPAN для Perl, pip для Python ΠΈΠ»ΠΈ ΠΆΠ΅ gem для Ruby. ВСроятно, Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½Ρ‹, Π½ΠΎ всё ΠΆΠ΅ ΠΎΠ½ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ ΠΏΠ»ΠΎΡ….

Cabal устанавливаСт свои ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π²

/.profile β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°):

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ cabal, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ список доступных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Иногда Π’Π°ΠΌ придСтся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π² частности ΠΏΠ΅Ρ€Π΅Π΄ установкой ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ

Π‘Π°ΠΌΡ‹ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π’Π°ΡˆΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ инсталлятор Cabal:

УстанавливаСм ghc-mod (ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Emacs/Vim)

ghc-mod пригодится Π’Π°ΠΌ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ GHC с Emacs ΠΈΠ»ΠΈ Vim. Π’ΠΎΠ³ΠΎ ΠΆΠ΅ самого эффСкта ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π² Sublime Text 2 ΠΈ ghc-mod с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SublimeHaskell. Π― ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ пользовался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ с Emacs. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Vim ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ hdevtools, Ρ‚.ΠΊ. ΠΎΠ½ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС, ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Ρ‚ΠΎΡ‡Π΅Π½ (см. ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ kamatsu)

Настройку Π’Π°ΡˆΠ΅Π³ΠΎ собствСнного Emacs я ΠΎΡΠ²Π΅Ρ‰Π°Ρ‚ΡŒ Π½Π΅ стану (Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠΎΠΈΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ

УстанавливаСм Cabal-dev (пСсочница для сборки)

Cabal-dev β€” это инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ упростит Π’Π°ΠΌ установку ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π₯аскСлС. Он ΠΏΠΎΡ…ΠΎΠΆ Π½Π° virtualenv для Python ΠΈ rvm для Ruby, Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ использованию различаСтся. Он спасСт Вас ΠΎΡ‚ «кабальского Π°Π΄Π°Β», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΠΈ Ρƒ ΠΊΠΎΠ³ΠΎ Π½Π΅ получаСтся ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ·-Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² с зависимостями Π΄Ρ€ΡƒΠ³ΠΈΡ….

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ cabal-dev вмСсто простого cabal для сборки Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π“Π»Π°Π²Π½Ρ‹ΠΉ компромисс состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π’Π°ΠΌ придСтся Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ (Π³ΠΎΡ€Π°Π·Π΄ΠΎ) большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΈ Ρ‚Π°ΠΊ Π±Ρ‹Π»ΠΈ установлСны Π³Π΄Π΅-Ρ‚ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС (ΠΈ Π·Π°Π±ΠΈΠ²Π°Ρ‚ΡŒ дисковоС пространство), Π½ΠΎ это бСзусловно справСдливая ΠΏΠ»Π°Ρ‚Π°.

Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ вСдутся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π²Π»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π‘Π±ΠΎΡ€ΠΎΠΊ Π² ΠŸΠ΅ΡΠΎΡ‡Π½ΠΈΡ†Π΅ ΠΈ Π˜Π·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π² cabal-install, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ информация ΠΎ cabal-dev, которая Π΅ΡΡ‚ΡŒ Π² этом постС, потСряСт Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· нСсколько мСсяцСв (Π»Π΅Ρ‚?).

Установка инструмСнтов ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ cabal-dev

Настройка GHCi

ghci β€” это ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ GHC (REPL, схоТий с python ΠΈΠ»ΠΈ irb Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅). Π—Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ GHC Users Guide (Chapter 2. Using GHCi). Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, играя с ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ для Π½Π°Ρ‡Π°Π»Π° ΡƒΠΊΠΎΡ€ΠΎΡ‚ΠΈΡ‚ΡŒ привСтствиС. Оно выглядит Ρ‚Π°ΠΊ:

Когда Π’Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, привСтствиС разрастСтся, ΠΈ Π½Π° самом Π΄Π΅Π»Π΅ это Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ :set prompt «h> » ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС GHCi, Π½ΠΎ это Ρ‚ΠΎΠΆΠ΅ лишнСС.

Hackage Ρ…Ρ€ΡƒΠΏΠΊΠΈΠΉ, Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ (Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅) Π·Π΅Ρ€ΠΊΠ°Π»Π°

К соТалСнию, Hackage Π½Π΅ славится своСй Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π― Π½Π΅ знаю Π² Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ надСюсь, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ с этим Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ Π² блиТайшСС врСмя. Π•ΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ (ΠžΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Π² случаС падСния Hackage), Π½ΡƒΠΆΠ½ΠΎ всСго-лишь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ· hdiff Π½Π° hdiff.luite.com ΠΈΠ»ΠΈ с hackage.csc.stanford.edu.

Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ строчку Π²

ПослС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ список ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

И Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ всС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ спустя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя!

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cabal-dev)

Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС Π’Ρ‹ Π±Ρ‹ ΠΈ сами это осознали, Π½ΠΎ самый быстрый способ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ с cabal-dev. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

hs-hello-world.cabal
HelloWorld.hs

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ Β«ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΒ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ пСсочницС:

Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» получаСтся Π²Π΅Π»ΠΈΠΊΠΎΠ²Π°Ρ‚, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ½ статичСски Π»ΠΈΠ½ΠΊΠΎΠ²Π°Π½. МоТно ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π»ΡŽΠ±ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ, ΠΈ ΠΎΠ½ просто Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

МоТно ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, пропустив шаг установки:

Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅Ρ‚ зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡ€Π΅Π·Π°Ρ‚ΡŒ ΡƒΠ³Π»Ρ‹.

НапримСр, Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, Π±Π΅Π· компиляции:

Π”Π° ΠΈ вовсС ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±Π΅Π· cabal-dev (ΠΈΠ»ΠΈ cabal ):

Но для Π±ΠΎΠ»Π΅Π΅ слоТного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ cabal-dev ghci (послС cabal-dev configure && cabal-dev build ). ΠŸΡ€ΠΎΡˆΡƒ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² этом случаС ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ автоматичСски:

ΠžΡΠ½ΠΎΠ²Ρ‹ GHCi

НСкоторыС Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚Ρ€ΡŽΠΊΠΈ GHC ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π±Ρ‹ Π·Π½Π°Ρ‚ΡŒ. Помимо Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΡƒΠΊΠ°Π·Π°Π» здСсь, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Chapter 2. Using GHCi.

:t ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ выраТСния
:m добавляСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости
:l ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, :r ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

Π― ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ» для сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ сайты ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΠΊΠ° ΡƒΡ‡ΠΈΠ» Π₯аскСль ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Книги
Π‘Π°ΠΉΡ‚Ρ‹

#haskell Π½Π° Freenode β€” Ρ‚ΠΎ мСсто, Π³Π΄Π΅ Π’Ρ‹ Π² любоС врСмя Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ нСсколько сотСн Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, заинтСрСсованных Π² Π₯аскСлС. ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ мСсто для поиска ΠΏΠΎΠΌΠΎΡ‰ΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΠΈΠΌΡΡ

ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ языка Π±Π΅Π· ΠΈΡΠΏΡ‹Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°. Установим Haskell.

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами, ΠΌΡ‹ Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ самый ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ. НазываСтся ΠΎΠ½ The Haskell Tool Stack. Π­Ρ‚Π° малСнькая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° β€” всё, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ понадобится для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Haskell.

Haskell β€” кроссплатформСнный язык, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΈ Π² Linux, ΠΈ Π² macOS OS X, ΠΈ Π΄Π°ΠΆΠ΅ Π² Windows. Однако Π² 2008 Π³ΠΎΠ΄Ρƒ я навсСгда ΠΏΠΎΠΊΠΈΠ½ΡƒΠ» ΠΌΠΈΡ€ Windows, поэтому всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ взаимодСйствия с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ Unix-way. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ссли Π²Ρ‹ всё-Ρ‚Π°ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Windows, Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ β€” всё описанноС Π½ΠΈΠΆΠ΅ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Ρƒ вас.

Вся конфигурация ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π½Ρ‹ мною Π½Π° Ubuntu 16.04.1.

УстанавливаСм

Π˜Π΄Ρ‘ΠΌ сюда ΠΈ Π·Π°Π±ΠΈΡ€Π°Π΅ΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Π½Π°ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ. ΠžΠ±Ρ‰ΠΈΠΉ Unix-Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ установки ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост:

На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΠΊΠ½ΠΈΠ³ΠΈ я использовал stack вСрсии 1.4.0. Если Ρƒ вас Π±ΠΎΠ»Π΅Π΅ старая вСрсия β€” Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ. Если ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ новая β€” Ρƒ вас Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ совсСм Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ описано Π½ΠΈΠΆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ stack всё Π΅Ρ‰Ρ‘ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ развиваСтся.

Haskell-инфраструктура β€” экосистСма, ΠΊΡ€Π°Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°ΠΌΠ½Π΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся Ρ€Π°Π½Π΅Π΅ упомянутый компилятор GHC. Haskell являСтся ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языком: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдставляСт собой ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ исполняСмый (Π°Π½Π³Π». executable) Ρ„Π°ΠΉΠ».

Haskell-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” срСда для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Haskell-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ β€” ΠΊΠ΅ΠΌ-Ρ‚ΠΎ написанныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΡΠΏΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ нас ΠΎΡ‚ изобрСтСния вСлосипСдов.

Π Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ инфраструктуру

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π° ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ установлСна инфраструктура послСднСй ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии. Π–ΠΈΡ‚ΡŒ всё это хозяйство Π±ΡƒΠ΄Π΅Ρ‚ Π² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅

Hi World

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Haskell-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ real ΠΈ собираСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Но ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ сСбС Тизнь, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ исполняСмый Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ скопирован Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

/.local/bin (подразумСваСтся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρƒ вас ΡƒΠΆΠ΅ имССтся). ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠœΠΎΠ΄ΡƒΠ»ΠΈ: знакомство

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ src/Lib.hs :

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ app/Main.hs :

ВсС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ части: Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±Π΅Ρ€Ρ‘ΠΌ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ создали сами. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ β€” это ΡƒΠΆΠ΅ ΠΊΠ΅ΠΌ-Ρ‚ΠΎ написанныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… ΠΌΡ‹ познакомимся со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΈΠ· Π½ΠΈΡ…. Π‘Ρ€Π΅Π΄ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ слСдуСт Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… Π³Π»Π°Π²Π°Ρ…. А ΠΎΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ посвящСна рассказу ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…: ΠΈΠ· Π½Π΅Ρ‘ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΎΡ‚ΠΊΡƒΠ΄Π° бСрутся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Для Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ…

И Π΅Ρ‰Ρ‘. ΠŸΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ схСму simple вмСсто ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π”Π°, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½ΠΎΠΉ схСмой, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² этом случаС ΠΌΡ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ Π±Ρ‹ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π― Ρ€Π°Π΄, Ρ‡Ρ‚ΠΎ Π²Ρ‹ познакомились с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΡƒΠΆΠ΅ сСйчас, вСдь Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ постоянно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ установка Haskell. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Stack

На настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ установка ΠΈ использованиС Haskell Ρ‡Π΅Ρ€Π΅Π· ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ stack являСтся бСзусловно ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.
НСкоторыС ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚ΡŒ «Π΄Π° ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, это, говорят, ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Ρ‘ΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ». Π’ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‡Ρ‚ΠΎ говорят. А Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρƒ Π²ΠΎΠΏΡ€ΠΎΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π½Π΅ ΠΈΠ΄Ρ‘Ρ‚. А Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ stack. Ну ΠΈ Π²ΠΎΡ‚. ДСнис Π¨Π΅Π²Ρ‡Π΅Π½ΠΊΠΎ Π² свой ΠΊΠ½ΠΈΠΆΠΊΠ΅ описывал установку ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ использования стСка ΠΏΠΎΠ΄ MacOS. Π― взял Ρ‡ΠΈΡΡ‚ΡƒΡŽ Win 7 x32 (Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ) ΠΈ поставил stack. Π˜ΡΡ‚ΠΎΡ€ΠΈΡŽ этого дСйствия с коммСнтариями я ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΠΎΡ‡Ρ‚Π΅Π½Π½Π΅ΠΉΡˆΠ΅ΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠΈ.

Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° https://haskell-lang.org/get-started
Π’Π°ΠΌ Ρ‰Ρ‘Π»ΠΊΠ°Π΅ΠΌ Π½Π° ΠΈΠΊΠΎΠ½ΠΊΠ΅ Windows, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ, скачиваСм ΠΈ запускаСм.

Π”Π°Π»Π΅Π΅ соглашаСмся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² PATH ΠΈ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния.
По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ инсталляции Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ консольноС ΠΎΠΊΠ½ΠΎ (ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки), Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌ Π² Π½Π΅ΠΉ stack ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Enter. По Π΄Π»ΠΈΠ½Π½ΠΎΠΌΡƒ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ stack установлСн.
Обновим свСдСния ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, Ρ‡Ρ‚ΠΎ Π±Ρ‹ stack ставил Π½Π°ΠΌ самыС свСТиС.
stack update
— ΠΈ придётся ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ.

Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для своих экспСримСнтов (Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹) Π½Π° Haskell.
Π― создал ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ c:\Users\User\Samples\Haskell Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ.
Π’.ΠΊ. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ stack, компилятор ΠΈ Ρ‚.Π΄. ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ линуксовыС я Π²ΠΎΠ·Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡΡŒ ΠΎΡ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ содСрТащими ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ русскиС Π±ΡƒΠΊΠ²Ρ‹.
И Ρ‚Π°ΠΊ, пСрСйдя Π² c:\Users\User\Samples\Haskell я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
Π‘Ρ€Π°Π·Ρƒ ΠΆΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΡƒ вопрос «Π Π±Π΅Π· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° нСльзя?», ΠΌΠ½Π΅ Π±Ρ‹ малСнький Ρ„Π°ΠΉΠ»ΠΈΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.
Π’ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅. Π’ Ρ‚ΠΎΠΌ числС с малСньким Ρ„Π°ΠΉΠ»ΠΈΠΊΠΎΠΌ.
Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ шаблон (ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ stack update ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ списки вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²).
Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список шаблонов:
stack templates
Из ΠΊΡ€Π°Ρ‚ΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ для Π½Π°Ρ‡Π°Π»Π°, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½Π°ΠΌ Π½Π΅ понадобится. МногиС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для использования с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ рассчитаны вСсьма Π½Π° Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Ρ. Однако, Π½Π° этот список ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ.

Для создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ просто ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ имя шаблона:
stack new имя-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° окаТСтся располоТСн Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.
НапримСр, выполняСм stack new tst1

Selecting the best among 10 snapshots.

Downloaded lts-8.12 build plan.
Populated index cache.
* Matches lts-8.12

Selected resolver: lts-8.12
Initialising configuration using resolver: lts-8.12
Total number of user packages considered: 1
Writing configuration to file: tst1\stack.yaml
All done.

И Ρ‚Π°ΠΊ, посмотрим содСрТимоС Ρ„Π°ΠΉΠ»Π° src\main.hs

МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ, Π½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· stack:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10

designed to get you up and running quickly, making it easy to focus on using Haskell. You get:

Let’s get started

Note: Users who wish to make use of stack and want to ensure they are running the latest version may want to consider running «stack upgrade» and ensuring the proper path for stack-installed binaries is in their environment.

Other Operating Systems

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10

Mac OS X

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10 ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10 ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10

The recommended way to install the components of the mac platform is using ghcup to install ghc and cabal-install, and following the instructions at haskellstack.org to install stack.

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10

Windows

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10 ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10 ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10

The recommended way to install the components of the windows platform is using Chocolatey to install ghc and cabal-install, and following the instructions at haskellstack.org to install stack. Further details for Chocolatey usage are available here.

To get started perform these steps:

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10

Linux

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10 ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10 ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ haskell platform Π½Π° windows 10

Note that distribution-packaged versions are typically behind the current platform release. If you prefer to use the latest version rather than the distribution-packaged version, then you may want to use the generic Linux installer.

If you can’t find your distribution then select Generic.

Select your distribution

Please select your distribution on the right.

Generic Linux

This is a generic distribution of the Haskell Platform. While it should work on most modern Linux distributions, you may want to use one of the distribution-specific options listed on the right. As GHC links against libgmp, you may need to install «libgmp-dev» using your package manager of choice.

The recommended way to install the components of the generic platform is using ghcup to install ghc and cabal-install, and following the instructions at haskellstack.org to install stack.

Ubuntu

Haskell Platform is available in your distribution’s package repository. Note that distribution-packaged versions are typically behind the current platform release. If you prefer to use the latest version rather than the distribution-packaged version, then you may want to use the generic Linux installer.

Debian

Haskell Platform is already available in your distribution’s package repository. Note that distribution-packaged versions are typically behind the current platform release. If you prefer to use the latest version rather than the distribution-packaged version, then you may want to use the generic Linux installer.

Linux Mint

Haskell Platform is already available in your distribution’s package repository. Note that distribution-packaged versions are typically behind the current platform release. If you prefer to use the latest version rather than the distribution-packaged version, then you may want to use the generic Linux installer.

Redhat

Haskell Platform is already available in your distribution’s package repository. Note that distribution-packaged versions are typically behind the current platform release. If you prefer to use the latest version rather than the distribution-packaged version, then you may want to use the generic Linux installer.

Fedora

Haskell Platform is already available in your distribution’s package repository. Note that distribution-packaged versions are typically behind the current platform release. If you prefer to use the latest version rather than the distribution-packaged version, then you may want to use the generic Linux installer.

Gentoo

Haskell Platform is already available in your distribution’s package repository. Note that distribution-packaged versions are typically behind the current platform release. If you prefer to use the latest version rather than the distribution-packaged version, then you may want to use the generic Linux installer.

More details can be found in the Wiki.

Build from source

If we don’t have a binary package suitable for your distribution you can build the Haskell Platform from source.

Download and extract the source tarball,

See the README file for build instructions.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Install/upgradeΒΆ

For common Un*x operating systems (including macOS), all you need to do is run:

Binaries for other operating systems are listed below, and available on the GitHub release page. For the future, we are open to supporting more OSes (to request one, please submit an issue).

Binary packages are signed with this signing key.

If you are writing a script that needs to download the latest binary, you can use URLs like https://get.haskellstack.org/stable/

. (e.g. https://get.haskellstack.org/stable/linux-x86_64.tar.gz) that always point to the latest stable release.

WindowsΒΆ

We recommend installing to the default location with these installers, as that will make stack install and stack upgrade work correctly out of the box.

If in doubt: you should prefer the 64-bit installer.

You may see a «Windows Defender SmartScreen prevented an unrecognized app from starting» warning when you try to run the installer. If so, click on More info, and then click on the Run anyway button that appears.

Manual downloadΒΆ

Download the latest release:

Unpack the archive and place stack.exe somewhere on your %PATH% (see Path section below) and you can then run stack on the command line.

Now you can run stack from the terminal.

macOSΒΆ

We generally test on the current version of macOS and do our best to keep it compatible with the three most recent major versions. Stack may also work on older versions (YMMV).

Installer scriptΒΆ

Manual downloadΒΆ

Using HomebrewΒΆ

If you have the popular brew tool installed, you can just do:

NotesΒΆ

After installation, running stack setup might fail with configure: error: cannot run C compiled programs. in which case you should run:

If you are on OS X 10.11 («El Capitan») and encounter either of these problems, see the linked FAQ entries:

If you are on OS X 10.12 («Sierra») and encounter GHC panic while building, see this issue

UbuntuΒΆ

DebianΒΆ

CentOS / Red Hat / Amazon LinuxΒΆ

There is also an unofficial Copr repo. Note that this Stack version may lag behind, so we recommend running stack upgrade after installing it.

FedoraΒΆ

Fedora includes builds of stack, but the version may lag behind, so we recommend running stack upgrade after installing it.

openSUSE / SUSE Linux EnterpriseΒΆ

There is also an unofficial SUSE package. Note that this Stack version may lag behind, so we recommend running stack upgrade after installing it. To install it:

Add the appropriate OBS repository:

all needed is in distribution

SUSE Linux Enterprise 12

Arch LinuxΒΆ

There is an official package in the Arch community repository. So you can install it by simply doing:

Note that this version may slightly lag behind, but it should be updated within the day. The package is also always rebuilt and updated when one of its dependencies gets an update.

In order to use stack setup with older versions of GHC or on a 32-bit system, you may need the ncurses5-compat-libs AUR package installed. If this package is not installed, Stack may not be able to install older ( haskell-stack-tool package from there.

NixOSΒΆ

Users who follow the nixos-unstable channel or the Nixpkgs master branch can install the latest stack release into their profile by running:

Alternatively, the package can be built from source as follows.

Clone the git repo:

Create a shell.nix file:

Install stack to your user profile:

For more information on using Stack together with Nix, please see the NixOS manual section on Stack.

Linux (generic)ΒΆ

Installer scriptΒΆ

Manual downloadΒΆ

Download the latest release:

Ensure you have required system dependencies installed. These include GCC, GNU make, xz, perl, libgmp, libffi, and zlib. We also recommend Git and GPG. To install these using your package manager:

Now you can run stack from the terminal.

If you don’t have that directory in your PATH, you may need to update your PATH (such as by editing

If you’re curious about the choice of these paths, see issue #153

Shell auto-completionΒΆ

For more information and other shells, see the shell auto-completion page

China-based usersΒΆ

If you’re attempting to install stack from within China:

As of 2020-02-24, the download link has limited connectivity from within mainland China. If this is the case, please proceed by manually downloading (ideally via a VPN) and installing stack per the instructions found on this page pertinent to your OS.

After install, your

/.stack/config.yaml will need to be configured before stack can download large files consistently from within China (without reliance on a VPN). Please add the following to the bottom of the

/.stack/config.yaml file (for Windows: use the %STACK_ROOT%\config.yaml):

Using an http proxyΒΆ

To use stack behind a http proxy with ip address IP and port PORT, first set up an environment variable http_proxy and then run the stack command. e.g.

Note that on most operating systems, it is not mandatory for programs to follow the «system-wide» http proxy. Some programs, such as browsers, do honor this «system-wide» http proxy setting, while other programs, including bash, do not. That means configuring «http proxy setting» in your Control Panel (Windows) or System Preferences (Mac) would not result in stack traffic going through the proxy.

UpgradeΒΆ

There are essentially four different approaches to upgrade:

The stack tool itself ships with an upgrade command, which download a stack binary or build it from source and install it to the default install path (e.g.

If you’re using a package manager and are happy with sticking with the officially released binaries from the distribution (which may the lag behind latest version of Stack significantly), simply follow your normal package manager strategies for upgrading (e.g. apt-get update && apt-get upgrade ).

Install Older VersionsΒΆ

To install a specific version of stack, navigate to the desired version on the GitHub release page, and click the appropriate link under its «Assets» drop-down menu.

Copyright (c) 2015-2021, Stack contributors

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *