findet ihr hier
- S. Diehl: Numeric Tower
- J. Bailey: Haskell CheatSheet
- S. Diehl: What I wish I knew when learning Haskell
- Wikipedia: Non-strict evaluation
- Hudak, Hughes, Jones, Wadler: A History of Haskell: Being Lazy With Class
- Haskell-Wiki: Lazy vs. non-strict
- H. Apfelmus: Incomplete Guide to Lazy Evaluation
- Overloading in Haskell
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).
Siehe Install and Upgrade Windows
Es gibt Installer für
Das Installationsverzeichnis solltet Ihr in eure PATH
Umgebungsvariable
aufnehmen.
Zum Mac kann ich leider nicht viel sagen, aber eine Anleitung findet ihr hier
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 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.
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.
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)
))
sorry aber Da müsst ihr selbst suchen - ich nutze nur diese beiden :(