2016-07-22 12 views
4

Ich studiere Haskell im Voraus für das nächste Semester und ich bin stecken Test Gruppe. Ich versuchte direkt in WinGHCi und eine Funktion in eine Textdatei schreiben. Lesen Dokumentation (haskell.org, zvon.org) Ich sehe, dass das Modul Data.List erforderlich ist, so habe ich folgendes in WinGHCi:Probleme mit der Haskell-Gruppe

:l Data.List 

Aber ich erhalte eine Fehlermeldung: : Modul ' Data.List‘ist ein Paket-Modul

Dann schrieb ich eine Funktion mit einem Texteditor wie folgt:

import Data.List 
group "aaaabbbbbbbccddd" 

ich erhalte eine Fehlermeldung erneut beim Laden (Kompilieren):

_Haskell.hs:2:1: 
Parse error: naked expression at top level 
Perhaps you intended to use TemplateHaskell_ 

Ich bin ein absoluter Anfänger in der funktionalen Programmierung. Ich werde Ihre Hilfe sehr schätzen, um mein Problem zu beheben.

Mit freundlichen Grüßen.

+0

Geben Sie Ihrem Ausdruck einen Namen; z.B. 'Import Daten.Liste; Ergebnis = Gruppe "aaaabbbbbbccddd" '. Dann können Sie Ihre Datei in 'ghci' laden. Wenn Sie kompilieren wollen, ist es am einfachsten, auch ein 'main' anzugeben, zB' main = print result'. –

Antwort

5

Sie können es in GHCI einfach verwenden, genau wie Sie es in der Textdatei importieren.

Nackter Ausdruck auf oberster Ebene bedeutet genau das: Sie können keinen nackten Ausdruck auf oberster Ebene haben. Probieren Sie dies in einer Textdatei aus.

import Data.List 

testGroup :: (Eq a) => [a] -> [[a]] 
testGroup lst = group lst 

Das wird Wunder wirken.

~/temp ❯❯❯ ghci h.hs 
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help 
[1 of 1] Compiling Main    (h.hs, interpreted) 
Ok, modules loaded: Main. 
*Main> testGroup [2] 
[[2]] 
+0

Noice 'testGroup = group' also ist es ziemlich redundant. –

+0

Es ist total, ich wollte nur zeigen, was ein 'nackter Ausdruck' bedeutet, obwohl das vielleicht nicht der beste Weg war. Wenn Sie nur eine Gruppe testen möchten, tun Sie dies wahrscheinlich nur in GHCI – joaquinlpereyra