Skip to content

Latest commit

 

History

History
128 lines (90 loc) · 4.22 KB

readme.md

File metadata and controls

128 lines (90 loc) · 4.22 KB

Workshop: Haskell

Ausgangsmaterial Workshop

findet ihr hier

Linksammlung

Tools

Hilfreiches

Hintergrund

Installation

Stack

Ich empfehle Haskell nur über das Stack Tool zu installieren (also nicht die Plattform oder den GHC direkt).

In jeden Fall solltet ihr nach der Installation mit

stack --version
stack update
stack upgrade

prüfen (die Version jetzt gerade ist 1.4.0) und eventuell Upgraden (falls nötig).

Windows

Siehe Install and Upgrade Windows

Es gibt Installer für

Das Installationsverzeichnis solltet Ihr in eure PATH Umgebungsvariable aufnehmen.

MacOS

Zum Mac kann ich leider nicht viel sagen, aber eine Anleitung findet ihr hier

Linux

Für Ubuntu und co. gibt es eine deb Quelle: deb http://download.fpcomplete.com/ubuntu xenial main

Ansonsten bitte unter How to install schauen.

Intero

Intero ist meiner Meinung nach aktuelle die beste Möglichkeit guten Editor-Support für Haskell zu bekommen.

Eine Installationsleitung findet ihr hier.

Übrigens: dort steht viel über Emacs - das unten vorgestellte VS.code Plugin nutzt aber auch Intero.

Editorsupport

VS Code

Ich benutze Haskelly

Installationsleitung findet ihr unter dem Link.

Im Prinzip läuft es aber darauf hinaus Stack (siehe oben) zu installieren und dann Intero und Quickcheck per:

stack install intero QuickCheck

nachzuziehen.

Auf Linux/MacOS könnt ihr noch

stack install stack-run

installieren, dass den praktischen stack run Befehl beinhaltet, das geht aber glaube ich auf Windows nicht.

Emacs

Wird im Prinzip auf der Intero Seite erklärt. Hier aber noch die relevanten Teile aus meiner .emacs Konfig (verwendet offensichtlich noch eine Menge andere Emacs packages - also nur wenn ihr euch das zutraut, bzw. wissen wollt, wie das bei mir aussieht):

;; ----------------------------------------------------------------------
;; HASKELL
(require 'haskell-mode)
(require 'intero)

(add-hook 'haskell-mode-hook 'intero-mode)
(setq flycheck-check-syntax-automatically '(save new-line))
(flycheck-add-next-checker 'intero '(warning . haskell-hlint))

;; Zusätzliche Modi
(add-hook 'haskell-mode-hook 'linum-mode)
(add-hook 'haskell-mode-hook 'column-enforce-mode)
(add-hook 'haskell-mode-hook 'projectile-mode)
(add-hook 'literate-haskell-mode-hook 'column-enforce-mode)

;; Key-Bindings
(eval-after-load 'haskell-mode
  '(progn
     (define-key haskell-mode-map (kbd "C-c C-r") 'haskell-process-load-file)
     (define-key haskell-mode-map (kbd "C-c C-t") 'intero-type-at)
     (define-key haskell-mode-map (kbd "C-c C-i") 'intero-info)
     ))

andere Editoren

sorry aber Da müsst ihr selbst suchen - ich nutze nur diese beiden :(