{"id":165559,"date":"2013-01-13T21:43:03","date_gmt":"2013-01-13T17:43:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=165559"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=165559","title":{"rendered":"<span class=\"post_title\">\u0418\u0433\u0440\u0430\u0435\u043c \u0432 Haskell<\/span>"},"content":{"rendered":"<div class=\"content html_format\">       <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/df9\/6bd\/9bf\/df96bd9bf55e56cf92706ac27953c221.jpg\"\/><\/p>\n<p>  \u042f \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u043b \u0432\u0440\u0435\u043c\u044f \u0438\u0437\u0443\u0447\u0430\u044f Haskell \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043c\u0435\u0441\u044f\u0446\u044b, \u0438 \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0435 \u0448\u0430\u0433\u0438 \u0432 \u044d\u0442\u043e\u043c \u0437\u0430\u043d\u044f\u0442\u0438\u0438 \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u044d\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0431\u044b\u0442\u044c \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435. \u041c\u043d\u0435 \u043f\u043e\u0432\u0435\u0437\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043d\u0443\u0436\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0438 \u0432 Facebook \u044f \u043f\u0440\u043e\u0448\u0435\u043b \u043a\u0443\u0440\u0441 \u043f\u043e Haskell \u043e\u0442 <a href=\"http:\/\/www.serpentine.com\/\">Bryan O&#8217;Sullivan<\/a>, \u043d\u043e \u0412\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043b\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u0443 \u0438 \u0431\u0435\u0437 \u0447\u0443\u0436\u043e\u0439 \u043f\u043e\u043c\u043e\u0449\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0432 Haskell \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 <a href=\"http:\/\/tryhaskell.org\/\">Try Haskell<\/a>, \u0430 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0435\u0431\u0435 GHC.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Haskell Platform (GHC)<\/h4>\n<p>  The Haskell Platform \u2014 \u044d\u0442\u043e Glasgow Haskell Compiler (GHC) \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u00ab\u0432 \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u0438\u00bb. GHC \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0425\u0430\u0441\u043a\u0435\u043b\u044f, \u043d\u043e \u0412\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d. \u0414\u0440\u0443\u0433\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u0430\u044f \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f, <a href=\"http:\/\/www.haskell.org\/hugs\/\">Hugs<\/a>, \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0446\u0435\u043b\u044f\u0445, \u0447\u0435\u043c \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445.<\/p>\n<p>  \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Mac OS X 10.8 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c <a href=\"http:\/\/mxcl.github.com\/homebrew\/\">Homebrew<\/a> (\u0438 \u0441\u0432\u0435\u0436\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 Xcode), \u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"http:\/\/www.haskell.org\/platform\/\">Haskell Platform<\/a> \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Haskell Platform \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 2012.4.0.0.<\/p>\n<pre><code class=\"bash\">$ brew install haskell-platform <\/code><\/pre>\n<p>  <\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Cabal<\/h4>\n<p>  <a href=\"http:\/\/www.haskell.org\/cabal\/\">Cabal<\/a> \u2014 \u044d\u0442\u043e \u041e\u0431\u0449\u0430\u044f \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0421\u0431\u043e\u0440\u043a\u0438 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a (<i>Common Architecture for Building Applications and Libraries<\/i>) \u0434\u043b\u044f \u0425\u0430\u0441\u043a\u0435\u043b\u044f. \u0412 \u043f\u0430\u0440\u0435 \u0441 <a href=\"http:\/\/hackage.haskell.org\/\">Hackage<\/a>, Cabal \u043f\u043e\u0445\u043e\u0436 \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443 \u043d\u0430 \u0442\u0430\u043a\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u043a\u0430\u043a CPAN \u0434\u043b\u044f Perl, pip \u0434\u043b\u044f Python \u0438\u043b\u0438 \u0436\u0435 gem \u0434\u043b\u044f Ruby. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0412\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u044b, \u043d\u043e \u0432\u0441\u0451 \u0436\u0435 \u043e\u043d \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0438 \u043f\u043b\u043e\u0445.<\/p>\n<p>  Cabal \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u0432 <code>~\/.cabal\/<\/code>, \u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0443\u0445\u043e\u0434\u044f\u0442 \u0432 <code>~\/.cabal\/bin\/<\/code>. \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0438 \u043f\u0443\u0442\u0438 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f PATH. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0435\u0433\u043e-\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e, \u043d\u043e \u0432\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0412\u0430\u0448\u0438\u0445 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0439 (\u043b\u0438\u0447\u043d\u043e \u044f \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u043f\u043e\u043b\u044c\u0437\u0443\u044e  <code>~\/.profile<\/code> \u2014 \u043f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430):<\/p>\n<pre><code class=\"bash\">$ echo 'export PATH=$HOME\/.cabal\/bin:$PATH' &gt;&gt; ~\/.bashrc <\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f cabal, \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0418\u043d\u043e\u0433\u0434\u0430 \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<pre><code class=\"bash\">$ cabal update <\/code><\/pre>\n<p>  \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u0438\u043c\u0435\u0435\u043c <code>~\/.cabal\/config<\/code> \u0431\u0435\u0437 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0412\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043f\u043e\u0437\u0436\u0435 \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0438 \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u0442\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e. \u0427\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0433\u043e, \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0443 <code>-- library-profiling: False<\/code> \u043d\u0430 <code>library-profiling: True<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435 <code>~\/.cabal\/config<\/code>.<\/p>\n<pre><code class=\"bash\">$ for f in ~\/.cabal\/config; do \\     cp $f $f.old && \\     sed -E 's\/(-- )?(library-profiling: )False\/\\2True\/' &lt; $f.old &gt; $f; \\ done<\/code><\/pre>\n<p>  \u0421\u0430\u043c\u044b\u043c \u043f\u0435\u0440\u0432\u044b\u043c \u0412\u0430\u0448\u0438\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440 Cabal:<\/p>\n<pre><code class=\"bash\">$ cabal install cabal-install<\/code><\/pre>\n<p>  <\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c ghc-mod (\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Emacs\/Vim)<\/h4>\n<p>  <a href=\"http:\/\/www.mew.org\/~kazu\/proj\/ghc-mod\/en\/\">ghc-mod<\/a> \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0412\u0430\u043c \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 GHC \u0441 Emacs \u0438\u043b\u0438 Vim. \u0422\u043e\u0433\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0432 Sublime Text 2 \u0438 ghc-mod \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/github.com\/SublimeHaskell\/SublimeHaskell\">SublimeHaskell<\/a>. \u042f \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u0441 Emacs. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 Vim \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/github.com\/bitc\/hdevtools\">hdevtools<\/a>, \u0442.\u043a. \u043e\u043d \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0438 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u0442\u043e\u0447\u0435\u043d (\u0441\u043c. <a href=\"http:\/\/www.reddit.com\/r\/haskell\/comments\/16fegr\/getting_started_with_haskell\/c7viysx\">\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 kamatsu<\/a>)<\/p>\n<pre><code class=\"bash\">$ cabal install ghc-mod <\/code><\/pre>\n<p>  \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0412\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e Emacs \u044f \u043e\u0441\u0432\u0435\u0449\u0430\u0442\u044c \u043d\u0435 \u0441\u0442\u0430\u043d\u0443 (\u043d\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0438\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u043c <a href=\"https:\/\/github.com\/etrepum\/emacs.d\">~\/.emacs.d<\/a> \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430).<\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Cabal-dev (\u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0430 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438)<\/h4>\n<p>  <a href=\"https:\/\/github.com\/creswick\/cabal-dev\">Cabal-dev<\/a> \u2014 \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u0412\u0430\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0425\u0430\u0441\u043a\u0435\u043b\u0435. \u041e\u043d \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 virtualenv \u0434\u043b\u044f Python \u0438 rvm \u0434\u043b\u044f Ruby, \u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f. \u041e\u043d \u0441\u043f\u0430\u0441\u0435\u0442 \u0412\u0430\u0441 \u043e\u0442 \u00ab\u043a\u0430\u0431\u0430\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0430\u0434\u0430\u00bb, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0438 \u0443 \u043a\u043e\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u0438\u0437-\u0437\u0430 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u0441 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u0445. <\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <code>cabal-dev<\/code> \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e <code>cabal<\/code> \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0432\u0435\u0437\u0434\u0435, \u0433\u0434\u0435 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0442\u0440\u0430\u0442\u0438\u0442\u044c (\u0433\u043e\u0440\u0430\u0437\u0434\u043e) \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0438 \u0442\u0430\u043a \u0431\u044b\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0433\u0434\u0435-\u0442\u043e \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043c\u0435\u0441\u0442\u0435 (\u0438 \u0437\u0430\u0431\u0438\u0432\u0430\u0442\u044c \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e), \u043d\u043e \u044d\u0442\u043e \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u0430\u044f \u043f\u043b\u0430\u0442\u0430.<\/p>\n<p>  \u041d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 cabal-dev \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a <code>cabal install cabal-dev<\/code>, \u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u043b <a href=\"https:\/\/github.com\/creswick\/cabal-dev\/issues\/74\">\u0431\u0430\u0433 #74<\/a>, \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432:<\/p>\n<pre><code class=\"bash\">$ git clone https:\/\/github.com\/creswick\/cabal-dev.git \/tmp\/cabal-dev-src && \\ \u00a0\u00a0\u00a0\u00a0(cd \/tmp\/cabal-dev-src; cabal install) && \\ \u00a0\u00a0\u00a0\u00a0rm -rf \/tmp\/cabal-dev-src <\/code><\/pre>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0435\u0434\u0443\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u0432\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 <a href=\"http:\/\/hackage.haskell.org\/trac\/hackage\/wiki\/SandboxedBuildsAndIsolatedEnvironments\">\u0421\u0431\u043e\u0440\u043e\u043a \u0432 \u041f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0435 \u0438 \u0418\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u041e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439<\/a> \u0432 cabal-install, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e cabal-dev, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0435\u0441\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435, \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 (\u043b\u0435\u0442?).<\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 cabal-dev<\/h4>\n<p>  \u0415\u0441\u043b\u0438 \u0412\u0430\u043c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043d\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u044f\u0437\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u044e \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044e \u0425\u0430\u0441\u043a\u0435\u043b\u044f \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c cabal-dev. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0430 cabal-dev \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <code>.\/cabal-dev<\/code>, \u043d\u043e \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0435\u0435 \u0433\u0434\u0435 \u0443\u0433\u043e\u0434\u043d\u043e. \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u044e <a href=\"http:\/\/darcs.net\/\">darcs<\/a> 2.8.2 (\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0425\u0430\u0441\u043a\u0435\u043b\u0435) \u0432 \u043f\u0430\u043f\u043a\u0443 <code>\/usr\/local\/Cellar\/darcs\/2.8.2<\/code>, \u0438 \u043f\u043e\u043f\u0440\u043e\u0448\u0443 Homebrew \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u0438. \u041d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 \u0412\u0430\u043c \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c PATH.<\/p>\n<pre><code class=\"bash\">$ cabal-dev install -s \/usr\/local\/Cellar\/darcs\/2.8.2 darcs-2.8.2 $ brew link --overwrite darcs <\/code><\/pre>\n<p>  \u0422\u044b\u0434\u044b\u0436! \u0422\u0435\u043f\u0435\u0440\u044c darcs \u043b\u0435\u0436\u0438\u0442 \u0432 \u0412\u0430\u0448\u0435\u043c PATH, \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f \u043e \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0443\u044e\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445. \u041d\u0443, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0432\u0441\u0435 \u0435\u0449\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c, \u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u0442\u0430\u043a \u0447\u0430\u0441\u0442\u043e. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, cabal-dev \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0430\u043c\u0443\u044e \u0432\u0435\u0440\u0445\u0443\u0448\u043a\u0443 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0434\u0432\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u043e\u0431\u0449\u0438\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 (\u041e\u0427\u0415\u041d\u042c \u043e\u0431\u0449\u0438\u043c\u0438), \u0442\u043e \u043e\u043d\u0438 \u0441\u043f\u043b\u044f\u0448\u0443\u0442 \u0434\u0436\u0438\u0433\u0443 \u043d\u0430 \u0441\u0438\u043c\u043b\u0438\u043d\u043a\u0430\u0445 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430, \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u0442\u0430\u043a\u0438\u0445 \u0432\u0435\u0449\u0435\u0439 \u043a\u0430\u043a \u0444\u0430\u0439\u043b\u044b \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0439 \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>--overwrite<\/code> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0442\u0438 \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e, \u043d\u043e \u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0442\u044c \u0441 \u043a\u043b\u044e\u0447\u043e\u043c <code>--overwrite --dry-run<\/code>. \u042d\u0442\u043e \u043d\u0430\u0434\u043e\u0435\u0434\u0430\u0435\u0442, \u043d\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442 \u0412\u0430\u043c \u0446\u0435\u043b\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 darcs, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <code>use cabal info darcs<\/code> \u0438 \u043d\u0430\u0439\u0434\u0438\u0442\u0435 \u0441\u0435\u043a\u0446\u0438\u044e <code>Versions available:<\/code>.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0441\u0435\u043b\u044b\u0435 \u0448\u0442\u0443\u043a\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c (\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f):  <\/p>\n<ul>\n<li><a href=\"http:\/\/johnmacfarlane.net\/pandoc\/\">pandoc<\/a> \u2014 \u0448\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u043d\u043e\u0436 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 (markdown, reStructuredText, org-mode, LaTeX \u0438 \u0442.\u0434.)<\/li>\n<li><a href=\"http:\/\/gitit.net\/\">gitit<\/a> \u2014 wiki, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c git, darcs \u0438\u043b\u0438 mercurical<\/li>\n<li><a href=\"https:\/\/github.com\/bos\/pronk\">pronk<\/a> \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f HTTP \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 ab \u0438 httperf, \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439<\/li>\n<\/ul>\n<p>  \u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043a\u0430\u043a pronk, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 Hackage, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 cabal-dev \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">$  git clone https:\/\/github.com\/bos\/pronk.git \/tmp\/pronk-src && \\     (cd \/tmp\/pronk-src; \\      cabal-dev install -s \/usr\/local\/Cellar\/pronk\/$(git rev-parse --short HEAD)) && \\     rm -rf \/tmp\/pronk-src <\/code><\/pre>\n<p>  <\/p>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 GHCi<\/h4>\n<p>  ghci \u2014 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 GHC (REPL, \u0441\u0445\u043e\u0436\u0438\u0439 \u0441 python \u0438\u043b\u0438 irb \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435). \u0417\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a <a href=\"http:\/\/www.haskell.org\/ghc\/docs\/7.4.2\/html\/users_guide\/index.html\">GHC Users Guide<\/a> (<a href=\"http:\/\/www.haskell.org\/ghc\/docs\/7.4.2\/html\/users_guide\/ghci.html\">Chapter 2. Using GHCi<\/a>). \u0412\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u0430\u043c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438\u0433\u0440\u0430\u044f \u0441 \u043a\u043e\u0434\u043e\u043c, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u043a\u043e\u0440\u043e\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435. \u041e\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">Prelude&gt; <\/code><\/pre>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u0412\u044b \u043d\u0430\u0447\u043d\u0435\u0442\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0438, \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0441\u0442\u0435\u0442\u0441\u044f, \u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043d\u0438\u043a\u043e\u043c\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<pre><code class=\"haskell\">Prelude&gt; :m + Data.List Prelude Data.List&gt; :m + Data.Maybe Prelude Data.List Data.Maybe&gt; <\/code><\/pre>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0430\u0439\u043b\u0430 <a href=\"http:\/\/www.haskell.org\/ghc\/docs\/7.4.2\/html\/users_guide\/ghci-dot-files.html\">.ghci<\/a>. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 ASCII \u0441\u0438\u043c\u0432\u043e\u043b, \u0445\u043e\u0442\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u044e\u0431\u044f\u0442 \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u03bb&gt;.<\/p>\n<pre><code class=\"bash\">echo ':set prompt &quot;h&gt; &quot;' &gt;&gt; ~\/.ghci <\/code><\/pre>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>:set prompt &quot;h&gt; &quot;<\/code> \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 GHCi, \u043d\u043e \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043b\u0438\u0448\u043d\u0435\u0435.<\/p>\n<pre><code class=\"bash\">$ ghci h&gt; putStrLn &quot;Hello World!&quot; Hello World! h&gt; <\/code><\/pre>\n<p>  <\/p>\n<h4>Hackage \u0445\u0440\u0443\u043f\u043a\u0438\u0439, \u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 (\u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435) \u0437\u0435\u0440\u043a\u0430\u043b\u0430<\/h4>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, Hackage \u043d\u0435 \u0441\u043b\u0430\u0432\u0438\u0442\u0441\u044f \u0441\u0432\u043e\u0435\u0439 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c\u044e. \u042f \u043d\u0435 \u0437\u043d\u0430\u044e \u0432 \u0447\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043d\u043e \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0441 \u044d\u0442\u0438\u043c \u0447\u0442\u043e-\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u044e\u0442 \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f. \u0415\u0441\u0442\u044c \u043e\u0431\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0443\u0442\u044c (<a href=\"http:\/\/comonad.com\/reader\/2012\/hackage-mirror\/\">\u041e\u0431\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u044f Hackage<\/a>), \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0435\u0433\u043e-\u043b\u0438\u0448\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0438\u0437 hdiff \u043d\u0430 <a href=\"http:\/\/hdiff.luite.com\">hdiff.luite.com<\/a> \u0438\u043b\u0438 \u0441 <a href=\"http:\/\/hackage.csc.stanford.edu\">hackage.csc.stanford.edu<\/a>.<\/p>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0432 ~\/.cabal\/config:<\/p>\n<pre><code>remote-repo: hackage.haskell.org:http:\/\/hackage.haskell.org\/packages\/archive <\/code><\/pre>\n<p>  \u041d\u0430 \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435:<\/p>\n<pre><code class=\"haskell\">-- TODO When hackage is back up, set back to hackage.haskell.org! -- remote-repo: hackage.haskell.org:http:\/\/hackage.haskell.org\/packages\/archive remote-repo: hdiff.luite.com:http:\/\/hdiff.luite.com\/packages\/archive -- remote-repo: hackage.csc.stanford.edu:http:\/\/hackage.scs.stanford.edu\/packages\/archive <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/p>\n<pre><code class=\"bash\">$ cabal update <\/code><\/pre>\n<p>  \u0418 \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f!<\/p>\n<h4>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 (\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e cabal-dev)<\/h4>\n<p>  \u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435 \u0412\u044b \u0431\u044b \u0438 \u0441\u0430\u043c\u0438 \u044d\u0442\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u043b\u0438, \u043d\u043e \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u2014 \u043d\u0430\u0447\u0430\u0442\u044c \u0435\u0433\u043e \u0441 cabal-dev. \u0412\u043e\u0442 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>  \u0414\u043b\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e <code>-n<\/code>, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043e\u043f\u0446\u0438\u0439 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u041e\u043f\u0446\u0438\u044f <code>-n<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u043d\u0438 \u043e \u0447\u0435\u043c \u0412\u0430\u0441 \u043d\u0435 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442.  <\/p>\n<pre><code class=\"bash\">$ mkdir -p ~\/src\/hs-hello-world $ cd ~\/src\/hs-hello-world $ touch LICENSE $ cabal init -n --is-executable <\/code><\/pre>\n<p>  \u042d\u0442\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0444\u0430\u0439\u043b\u044b <code>Setup.hs<\/code> \u0438 <code>hs-hello-world.cabal<\/code>. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 <code>main-is:<\/code>, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0431\u0430\u043b \u0437\u043d\u0430\u043b, \u0438\u0437 \u043a\u0430\u043a\u043e\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b. \u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u0438\u043c:<\/p>\n<h5>hs-hello-world.cabal<\/h5>\n<p>  <\/p>\n<pre><code class=\"haskell\">-- Initial hs-hello-world.cabal generated by cabal init.  For further  -- documentation, see http:\/\/haskell.org\/cabal\/users-guide\/   name:                hs-hello-world version:             0.1.0.0 -- synopsis:             -- description:          license:             AllRightsReserved license-file:        LICENSE -- author:               -- maintainer:           -- copyright:            -- category:             build-type:          Simple cabal-version:       &gt;=1.8   executable hs-hello-world   main-is:             HelloWorld.hs   -- other-modules:          build-depends:       base ==4.5.* <\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 <code>HelloWorld.hs<\/code>, \u0441 \u0442\u0430\u043a\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:<\/p>\n<h5>HelloWorld.hs<\/h5>\n<p>  <\/p>\n<pre><code class=\"haskell\">main :: IO () main = putStrLn &quot;Hello, world!&quot; <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u00ab\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0435:  <\/p>\n<pre><code class=\"bash\">$ cabal-dev install Resolving dependencies... Configuring hs-hello-world-0.1.0.0... Building hs-hello-world-0.1.0.0... Preprocessing executable 'hs-hello-world' for hs-hello-world-0.1.0.0... Installing executable(s) in \/Users\/bob\/src\/hs-hello-world\/cabal-dev\/\/bin Installed hs-hello-world-0.1.0.0 $ .\/cabal-dev\/bin\/hs-hello-world Hello, world! <\/code><\/pre>\n<p>  \u0418\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u043b\u0438\u043a\u043e\u0432\u0430\u0442, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u043d \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u0438\u043d\u043a\u043e\u0432\u0430\u043d. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043b\u044e\u0431\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443 \u0441 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439, \u0438 \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0432 \u0448\u0430\u0433 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438:<\/p>\n<pre><code class=\"bash\">$ cabal-dev configure Resolving dependencies... Configuring hs-hello-world-0.1.0.0... $ cabal-dev build Building hs-hello-world-0.1.0.0... Preprocessing executable 'hs-hello-world' for hs-hello-world-0.1.0.0... [1 of 1] Compiling Main             ( HelloWorld.hs, dist\/build\/hs-hello-world\/hs-hello-world-tmp\/Main.o ) Linking dist\/build\/hs-hello-world\/hs-hello-world ... $ .\/dist\/build\/hs-hello-world\/hs-hello-world Hello, world! <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0440\u0435\u0437\u0430\u0442\u044c \u0443\u0433\u043b\u044b.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430, \u0431\u0435\u0437 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438:<\/p>\n<pre><code class=\"bash\">$ runghc HelloWorld.hs Hello, world! <\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"bash\">$ ghci GHCi, version 7.4.2: http:\/\/www.haskell.org\/ghc\/  :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude&gt; :load HelloWorld [1 of 1] Compiling Main             ( HelloWorld.hs, interpreted ) Ok, modules loaded: Main. *Main&gt; main Hello, world! <\/code><\/pre>\n<p>  \u0414\u0430 \u0438 \u0432\u043e\u0432\u0441\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u0431\u0435\u0437 <code>cabal-dev<\/code> (\u0438\u043b\u0438 <code>cabal<\/code>):<\/p>\n<pre><code class=\"bash\">$ runghc Setup.hs configure Configuring hs-hello-world-0.1.0.0... $ runghc Setup.hs build Building hs-hello-world-0.1.0.0... Preprocessing executable 'hs-hello-world' for hs-hello-world-0.1.0.0... [1 of 1] Compiling Main             ( HelloWorld.hs, dist\/build\/hs-hello-world\/hs-hello-world-tmp\/Main.o ) Linking dist\/build\/hs-hello-world\/hs-hello-world ... <\/code><\/pre>\n<p>  \u041d\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>cabal-dev ghci<\/code> (\u043f\u043e\u0441\u043b\u0435 <code>cabal-dev configure && cabal-dev build<\/code>). \u041f\u0440\u043e\u0448\u0443 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0432 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438:<\/p>\n<pre><code class=\"bash\">$ cabal-dev ghci  on the commandline:     Warning: -O conflicts with --interactive; -O ignored. GHCi, version 7.4.2: http:\/\/www.haskell.org\/ghc\/  :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Ok, modules loaded: Main. h&gt; main Hello, world! <\/code><\/pre>\n<p>  <\/p>\n<h4>\u041e\u0441\u043d\u043e\u0432\u044b GHCi<\/h4>\n<p>  \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0442\u0440\u044e\u043a\u0438 GHC \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u0437\u043d\u0430\u0442\u044c. \u041f\u043e\u043c\u0438\u043c\u043e \u0442\u0435\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0443\u043a\u0430\u0437\u0430\u043b \u0437\u0434\u0435\u0441\u044c, \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u0438\u0437\u0443\u0447\u0438\u0442\u044c <a href=\"http:\/\/www.haskell.org\/ghc\/docs\/7.4.1\/html\/users_guide\/ghci.html\">Chapter 2. Using GHCi<\/a>.<\/p>\n<h5>:t \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0438\u043f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/h5>\n<p>  <\/p>\n<pre><code class=\"haskell\">h&gt; :t main main :: IO () h&gt; :t map map :: (a -&gt; b) -&gt; [a] -&gt; [b] h&gt; :t map (+1) map (+1) :: Num b =&gt; [b] -&gt; [b] <\/code><\/pre>\n<p>  <\/p>\n<h5>:i \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 (function, typeclass, type, &#8230;)<\/h5>\n<p>  <\/p>\n<pre><code class=\"haskell\">h&gt; :i Num class Num a where   (+) :: a -&gt; a -&gt; a   (*) :: a -&gt; a -&gt; a   (-) :: a -&gt; a -&gt; a   negate :: a -&gt; a   abs :: a -&gt; a   signum :: a -&gt; a   fromInteger :: Integer -&gt; a     -- Defined in `GHC.Num' instance Num Integer -- Defined in `GHC.Num' instance Num Int -- Defined in `GHC.Num' instance Num Float -- Defined in `GHC.Float' instance Num Double -- Defined in `GHC.Float' h&gt; :info map map :: (a -&gt; b) -&gt; [a] -&gt; [b]   -- Defined in `GHC.Base' h&gt; :info Int data Int = ghc-prim:GHC.Types.I# ghc-prim:GHC.Prim.Int#     -- Defined in `ghc-prim:GHC.Types' instance Bounded Int -- Defined in `GHC.Enum' instance Enum Int -- Defined in `GHC.Enum' instance Eq Int -- Defined in `ghc-prim:GHC.Classes' instance Integral Int -- Defined in `GHC.Real' instance Num Int -- Defined in `GHC.Num' instance Ord Int -- Defined in `ghc-prim:GHC.Classes' instance Read Int -- Defined in `GHC.Read' instance Real Int -- Defined in `GHC.Real' instance Show Int -- Defined in `GHC.Show' <\/code><\/pre>\n<p>  <\/p>\n<h5>:m \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u0432 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438<\/h5>\n<p>  <\/p>\n<pre><code class=\"haskell\">h&gt; :m + Data.List h&gt; sort [10,9..1] [1,2,3,4,5,6,7,8,9,10] <\/code><\/pre>\n<p>  <\/p>\n<h5>:l \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c, :r \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442<\/h5>\n<p>  <\/p>\n<pre><code class=\"haskell\">h&gt; :! echo 'hello = print &quot;hello&quot;' &gt; Hello.hs h&gt; :l Hello [1 of 1] Compiling Main             ( Hello.hs, interpreted ) Ok, modules loaded: Main. h&gt; hello &quot;hello&quot; h&gt; :! echo 'hello = print &quot;HELLO&quot;' &gt; Hello.hs h&gt; :r [1 of 1] Compiling Main             ( Hello.hs, interpreted ) Ok, modules loaded: Main. h&gt; hello &quot;HELLO&quot; <\/code><\/pre>\n<p>  <\/p>\n<h4>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u042f \u043e\u0442\u043c\u0435\u0442\u0438\u043b \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043d\u0438\u0433\u0438 \u0438 \u0441\u0430\u0439\u0442\u044b \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438, \u043f\u043e\u043a\u0430 \u0443\u0447\u0438\u043b \u0425\u0430\u0441\u043a\u0435\u043b\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h5>\u041a\u043d\u0438\u0433\u0438<\/h5>\n<p>  <a href=\"http:\/\/www.ozon.ru\/context\/detail\/id\/8696277\/\">\u0418\u0437\u0443\u0447\u0430\u0439 \u0425\u0430\u0441\u043a\u0435\u043b\u044c \u0432\u043e \u0438\u043c\u044f \u0434\u043e\u0431\u0440\u0430!<\/a> <br \/>  \u042d\u0442\u0430 \u043a\u043d\u0438\u0433\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u043e\u0439 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439, \u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0435\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e. \u041e\u043d\u0430 \u043d\u0435 \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0433\u043b\u0443\u0431\u043e\u043a\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0442\u044c \u0412\u0430\u043c \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435 \u0414\u0415\u0419\u0421\u0422\u0412\u0418\u0422\u0415\u041b\u042c\u041d\u041e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f GHC, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0435\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u044f \u0441\u0442\u0430\u043b \u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u044f \u043a\u043e\u043c\u0444\u043e\u0440\u043d\u043e \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 \u0425\u0430\u0441\u043a\u0435\u043b\u0435.<br \/>  <a href=\"http:\/\/book.realworldhaskell.org\/\">Real World Haskell<\/a> <br \/>  \u042d\u0442\u043e \u0443\u0432\u0435\u0441\u0438\u0441\u0442\u0430\u044f \u043a\u043d\u0438\u0433\u0430 \u0438 \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c, \u0438 \u043f\u043e \u0433\u043b\u0443\u0431\u0438\u043d\u0435, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430. \u041e\u043d\u0430 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0435\u0449\u0435\u0439 \u0438\u0437 \u0420\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u041c\u0438\u0440\u0430: \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u0430, \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, IO, \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c \u0438 \u0442.\u0434. \u042f \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0435\u0435 \u0438\u0437\u0443\u0447\u0430\u044e, \u043d\u043e \u044d\u0442\u0430 \u043a\u043d\u0438\u0433\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e.<\/p>\n<h5>\u0421\u0430\u0439\u0442\u044b<\/h5>\n<p>  <\/p>\n<ul>\n<li><a href=\"http:\/\/www.scs.stanford.edu\/11au-cs240h\/\">CS240h: Functional Systems in Haskell<\/a> \u2014 \u0431\u044b\u043b \u0442\u0430\u043a\u043e\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e Haskell \u0432 \u0421\u0442\u0435\u043d\u0444\u043e\u0440\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u043b\u0438 <a href=\"http:\/\/www.scs.stanford.edu\/%7Edm\/\">David Mazi\u00e8res<\/a> \u0438 <a href=\"http:\/\/www.serpentine.com\/\">Bryan O&#8217;Sullivan<\/a>. \u041e\u043d \u043f\u043e\u0445\u043e\u0436 (\u043d\u043e \u0435\u0433\u043e \u043e\u0445\u0432\u0430\u0442 \u0448\u0438\u0440\u0435) \u043d\u0430 \u0442\u043e\u0442 \u043a\u0443\u0440\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u043f\u0440\u043e\u0448\u0435\u043b \u0432 Facebook. \u041a\u043e\u043d\u0441\u043f\u0435\u043a\u0442\u044b \u043b\u0435\u043a\u0446\u0438\u0439 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0438\u0445 \u0432\u0441\u0435!<\/li>\n<li><a href=\"http:\/\/book.realworldhaskell.org\/\">Real World Haskell<\/a><\/li>\n<li><a href=\"http:\/\/learnyouahaskell.com\/\">Learn You a Haskell<\/a><\/li>\n<li><a href=\"http:\/\/www.haskell.org\/\">haskell.org<\/a> \u043e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0432\u0435\u0449\u044c \u0434\u043b\u044f \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0442\u0430\u043c \u0412\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 + \u0413\u041e\u0420\u0410\u0417\u0414\u041e \u0431\u043e\u043b\u044c\u0448\u0435. \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0442\u0430\u043c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438!<\/li>\n<li><a href=\"http:\/\/www.haskell.org\/haskellwiki\/H-99:_Ninety-Nine_Haskell_Problems\">H-99<\/a> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u043a\u0438, \u043d\u0430\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041e\u043d \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 <a href=\"http:\/\/projecteuler.net\/\">Euler project<\/a>. \u0418\u0445 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f LYAH.<\/li>\n<li><a href=\"http:\/\/www.haskell.org\/haskellwiki\/Typeclassopedia\">Typeclassopedia<\/a> \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0442\u0430\u0439\u043f\u043a\u043b\u0430\u0441\u0441\u043e\u0432 Haskell Platform<\/li>\n<li><a href=\"http:\/\/www.haskell.org\/hoogle\/\">Hoogle<\/a> \u2014 \u044d\u0442\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a \u043f\u043e Haskell API, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430\u043c \u0442\u0438\u043f\u043e\u0432! \u042f \u043f\u0440\u043e\u0432\u0435\u043b \u0437\u0430 \u043d\u0438\u043c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/li>\n<li><a href=\"http:\/\/holumbus.fh-wedel.de\/hayoo\/hayoo.html\">Hayoo!<\/a> \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a, \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Hoogle<\/li>\n<li><a href=\"http:\/\/www.haskell.org\/haskellwiki\/HWN\">HWN<\/a> \u2014 \u0435\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u0425\u0430\u0441\u043a\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u043c\u044d\u0439\u043b \u043b\u0438\u0441\u0442\u043e\u0432, \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0441\u043e stackoverflow, \u0440\u0435\u0434\u0434\u0438\u0442 \u0438 \u0442.\u043f..<\/li>\n<li><a href=\"http:\/\/www.reddit.com\/r\/haskell\/\">Haskell :: Reddit<\/a> \u2014 \u0441\u0430\u0431\u0440\u0435\u0434\u0434\u0438\u0442 \u043f\u043e Haskell<\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/tagged\/haskell\">stackoverflow \u2014 haskell<\/a> \u2014 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e Haskell \u043d\u0430 stackoverflow, \u0447\u0430\u0441\u0442\u0435\u043d\u044c\u043a\u043e \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u044b \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f (\u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0442\u0430\u043c \u0437\u0430\u0441\u0438\u0436\u0438\u0432\u0430\u044e\u0441\u044c \u043f\u043e\u0441\u043b\u0435 HWN)<\/li>\n<li><a href=\"http:\/\/channel9.msdn.com\/Series\/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals\/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1\">C9 Lectures: FP Fundamentals<\/a> 13 \u043b\u0435\u043a\u0446\u0438\u0439 \u043f\u043e \u041e\u0441\u043d\u043e\u0432\u0430\u043c \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u043d\u0430 \u0425\u0430\u0441\u043a\u0435\u043b\u0435), \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 Dr. Erik Meijer (\u044f \u0435\u0449\u0435 \u0438\u0445 \u043d\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b, \u043d\u043e \u0438\u0445 <a href=\"https:\/\/www.facebook.com\/etrepum\/posts\/10151380112306253?comment_id=26337628&amp;amp;offset=0&amp;amp;total_comments=1\">\u0441\u043e\u0432\u0435\u0442\u043e\u0432\u0430\u043b Adam Breen<\/a>).<\/li>\n<\/ul>\n<p>  <\/p>\n<h5>IRC<\/h5>\n<p>  #haskell \u043d\u0430 Freenode \u2014 \u0442\u043e \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u0412\u044b \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0442\u0435\u043d \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u0425\u0430\u0441\u043a\u0435\u043b\u0435. \u041e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e\u043c\u043e\u0449\u0438.<\/p>\n<h4>\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f?<\/h4>\n<p>  \u042f \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u044f \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b \u0447\u0442\u043e-\u0442\u043e \u0432\u0430\u0436\u043d\u043e\u0435, \u0434\u0430\u0439\u0442\u0435 \u043c\u043d\u0435 \u0437\u043d\u0430\u0442\u044c! \u042f \u043d\u0435 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u044e \u043d\u0430 c\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u044b, \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f Haskell wiki \u0441 \u044d\u0442\u0438\u043c \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0443\u0447\u0448\u0435. \u041d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c.        \t\t   \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/165559\/\"> http:\/\/habrahabr.ru\/post\/165559\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">       <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/df9\/6bd\/9bf\/df96bd9bf55e56cf92706ac27953c221.jpg\"\/><\/p>\n<p>  \u042f \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u043b \u0432\u0440\u0435\u043c\u044f \u0438\u0437\u0443\u0447\u0430\u044f Haskell \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043c\u0435\u0441\u044f\u0446\u044b, \u0438 \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0435 \u0448\u0430\u0433\u0438 \u0432 \u044d\u0442\u043e\u043c \u0437\u0430\u043d\u044f\u0442\u0438\u0438 \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u044d\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0431\u044b\u0442\u044c \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435. \u041c\u043d\u0435 \u043f\u043e\u0432\u0435\u0437\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043d\u0443\u0436\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0438 \u0432 Facebook \u044f \u043f\u0440\u043e\u0448\u0435\u043b \u043a\u0443\u0440\u0441 \u043f\u043e Haskell \u043e\u0442 <a href=\"http:\/\/www.serpentine.com\/\">Bryan O&#8217;Sullivan<\/a>, \u043d\u043e \u0412\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043b\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u0443 \u0438 \u0431\u0435\u0437 \u0447\u0443\u0436\u043e\u0439 \u043f\u043e\u043c\u043e\u0449\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0432 Haskell \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 <a href=\"http:\/\/tryhaskell.org\/\">Try Haskell<\/a>, \u0430 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0435\u0431\u0435 GHC.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-165559","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/165559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=165559"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/165559\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=165559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=165559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=165559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}