2013-03-01 16 views
7

Ich versuche, Code in Real World Haskell zu kompilieren - Kapitel 24. LineCount.hs.Real World Haskell-Code wird nicht kompiliert?

Ich habe keine Änderungen am Code vorgenommen. Jedoch

, wenn ich das tue:

ghc -O2 --make -threaded LineCount.hs 

(wie im Buch angegeben), bekomme ich die Meldung:

MapReduce.hs:6:7: Not in scope: `rnf' 

Was könnte ich falsch gemacht?

Eine schnelle Suche ergab, dass es in der Vergangenheit einige Probleme mit parallelen und strikten Concurrency-Paketen gab und dass eine Neuinstallation das Problem beheben würde. Allerdings habe ich das versucht und es hat nicht funktioniert. Darüber hinaus wird dort festgestellt, dass dieses Problem irgendwann im Jahr 2010 behoben wurde: https://groups.google.com/forum/?fromgroups=#!msg/happs/gOieP4xfpNc/nrasm842JlUJ

Hinweis: Ich bekomme verschiedene andere Fehler beim Kompilieren anderer Dateien im selben Kapitel. Zum Beispiel, beim Kompilieren von Strat.hs bekomme ich: Modul Control.Parallel.Strategies' does not export parZipWith '. Beim Kompilieren von LineChunks.hs bekomme ich: Modul Control.Parallel.Strategies' does not export rnf '.

Ehrlich gesagt, als Anfänger Haskell Programmierer ich erwartete, in Schwierigkeiten zu geraten, sobald ich begann, Code zu ändern - aber ich hatte nicht erwartet, Probleme mit Code aus einem Buch zu haben!

+0

Sie könnten brauchen 'Control.DeepSeq' http://www.haskell.org/hoogle/?hoogle=rnf – luqui

+0

Ich habe gerade installiert, aber es hat nichts geändert. –

+0

Wenn @Clark Ihre Frage nicht beantwortet hat, geben Sie bitte den entsprechenden Code ein. –

Antwort

10

Die Funktion wird nicht mehr rnf genannt. Es heißt jetzt rdeepseq. Ersetzen Sie es einfach. :)

Sie können den Inhalt des parallel Pakets online finden, indem Sie "Parallele Strategien verfolgen" googlen oder auf here klicken.

+0

Das hat funktioniert! Danke vielmals! Das war der erste Haskell-Code, den ich jemals zusammengestellt habe, und es könnte kein schlechterer Start sein. : P –

+1

Kein Problem! Haskell kann sehr viel Spaß machen. Mach weiter! –

+1

Gibt es irgendwo eine RWH-Errata-Seite? Der Übergang von mtl 1.x -> 2.0 hat mich für einige Zeit von der Strecke geworfen. – yatima2975

Verwandte Themen