{"id":9288,"date":"2023-02-11T17:14:03","date_gmt":"2023-02-11T16:14:03","guid":{"rendered":"https:\/\/via-internet.de\/blog\/?p=9288"},"modified":"2023-03-13T19:56:55","modified_gmt":"2023-03-13T18:56:55","slug":"haskell-getting-started","status":"publish","type":"post","link":"https:\/\/via-internet.de\/blog\/2023\/02\/11\/haskell-getting-started\/","title":{"rendered":"Haskell | Getting Started"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Readings<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Haskell<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.haskell.org\/\" target=\"_blank\">https:\/\/www.haskell.org\/<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/wiki.haskell.org\/Haskell\" data-type=\"URL\" data-id=\"https:\/\/wiki.haskell.org\/Haskell\" target=\"_blank\">Wiki<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"http:\/\/learnyouahaskell.com\/introduction\" data-type=\"URL\" data-id=\"http:\/\/learnyouahaskell.com\/introduction\" target=\"_blank\">Learn You a Haskell for Great Good<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/serokell.io\/blog\/how-to-learn-haskell-in-10-minutes\" target=\"_blank\" rel=\"noreferrer noopener\">15 Resources to Help You Learn Haskell in 2023<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/serokell.io\/blog\/10-reasons-to-use-haskell\" target=\"_blank\">10 Reasons to use Haskell<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/book.realworldhaskell.org\/read\/\" target=\"_blank\" rel=\"noreferrer noopener\">Real World Haskell<\/a><\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Glasgow Haskell Compiler<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.haskell.org\/ghc\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.haskell.org\/ghc\/<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/downloads.haskell.org\/~ghc\/latest\/docs\/html\/users_guide\/index.html\" data-type=\"URL\" data-id=\"https:\/\/downloads.haskell.org\/~ghc\/latest\/docs\/html\/users_guide\/index.html\" target=\"_blank\">GHC User\u2019s Guide<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.haskellstack.org\/en\/stable\/README\/\">The Haskell Tool Stack<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/medium.com\/@dogwith1eye\/setting-up-haskell-in-vs-code-with-stack-and-the-ide-engine-81d49eda3ecf\" data-type=\"URL\" data-id=\"https:\/\/medium.com\/@dogwith1eye\/setting-up-haskell-in-vs-code-with-stack-and-the-ide-engine-81d49eda3ecf\" target=\"_blank\">Setting up Haskell in VS Code with Stack and the IDE Engine<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Tutorials<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"http:\/\/learn.hfm.io\/\" target=\"_blank\">http:\/\/learn.hfm.io\/<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Applications<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Games<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/mchakravarty\/lazy-lambda\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/mchakravarty\/lazy-lambda<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/gckeller\/shades\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/gckeller\/shades<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Read the <a rel=\"noreferrer noopener\" href=\"https:\/\/www.haskell.org\/\" data-type=\"URL\" data-id=\"https:\/\/www.haskell.org\/\" target=\"_blank\">Glasgow Haskell Compiler Homepage<\/a><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install  <a rel=\"noreferrer noopener\" href=\"https:\/\/www.haskell.org\/ghcup\/install\/\" target=\"_blank\">GHCup<\/a>: Windows Binary is <a rel=\"noreferrer noopener\" href=\"https:\/\/downloads.haskell.org\/~ghcup\/x86_64-mingw64-ghcup.exe\" target=\"_blank\">here<\/a><br>GHCup is the main installer for the general purpose language&nbsp;<a href=\"https:\/\/www.haskell.org\/\">Haskell<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Or install manuell<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Download and Install Haskell <a rel=\"noreferrer noopener\" href=\"https:\/\/www.haskell.org\/downloads\/\" data-type=\"URL\" data-id=\"https:\/\/www.haskell.org\/downloads\/\" target=\"_blank\">here<\/a><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.haskell.org\/platform\/windows.html\" data-type=\"URL\" data-id=\"https:\/\/www.haskell.org\/platform\/windows.html\" target=\"_blank\">On Windows<\/a><\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">choco install haskell-dev\nrefreshenv<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Installation on Windows and Powershell<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https:\/\/www.haskell.org\/ghcup\/sh\/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">First Steps<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">In order to run ghc and cabal, you need to adjust your PATH variable.\n\nTo do so, you may want to run 'source \/d\/CLOUD\/Programmier-Workshops\/Kurse\/Haskell\/Programme\/Haskell\/ghcup\/env' in your current terminal\nsession as well as your shell configuration (e.g. ~\/.bashrc).<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Start a simple repl via:\n  ghci\n\nStart a new haskell project in the current directory via:\n  cabal init --interactive\n\nInstall other GHC versions and tools via:\n  ghcup list\n  ghcup install &lt;tool> &lt;version>\n\nTo install system libraries and update msys2\/mingw64,\nopen the \"Mingw haskell shell\"\nand the \"Mingw package management docs\"\ndesktop shortcuts.\n\nIf you are new to Haskell, check out https:\/\/www.haskell.org\/ghcup\/steps\/<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cabal configuration file is by default located at<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&amp;lt;$ENV:USERPROFILE>\\AppData\\Roaming\\cabal\\config<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Create your first project<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Create a haskell project<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cabal init\ncabal build\ncabal run<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Configure VS Code with Haskell Support<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Install required components<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ cabal install hlint<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Configure VSCode<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ stack new vscode-haskell-config\n$ cd vscode-haskell-config\n$ stack setup<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Install an additional source code formatter<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ stack install brittany<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Readings Haskell Glasgow Haskell Compiler Tutorials Applications Games Installation Or install manuell Installation on Windows and Powershell First Steps Configuration Cabal configuration file is by default located at Create your first project Create a haskell project Configure VS Code with Haskell Support Install required components Configure VSCode Install an additional source code formatter<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[32],"tags":[],"class_list":["post-9288","post","type-post","status-publish","format-standard","hentry","category-haskell"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/comments?post=9288"}],"version-history":[{"count":7,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9288\/revisions"}],"predecessor-version":[{"id":9464,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9288\/revisions\/9464"}],"wp:attachment":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media?parent=9288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/categories?post=9288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/tags?post=9288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}