2013-03-01 33 views
7

Real World Haskell - Chapter 24. LineCount.hs'da bazı kodları derlemeye çalışıyorum.Gerçek Dünya Haskell kodu derlenmiyor mu?

Kodda hiç değişiklik yapmadım.

Ancak, ben yaptığımda: Neyi yanlış yapıyor olabilir

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

:

(kitapta anlatıldığı gibi)
ghc -O2 --make -threaded LineCount.hs 

, mesajı aldım?

Hızlı bir arama, paketlerde geçmişte paralel ve katı eşzamanlılık ile ilgili bir sorun olduğunu ve bunları yeniden yüklemenin sorunu çözeceğini gösterdi. Ancak bunu denedim ve işe yaramadı. https://groups.google.com/forum/?fromgroups=#!msg/happs/gOieP4xfpNc/nrasm842JlUJ

Not: Ayrıca, bu konu 2010 yılında bazen sabit olduğunu not edilmiştir aynı bölümdeki diğer dosyaları derleme yaparken diğer çeşitli hatalar olsun. Örneğin, Strat.hs derlerken: Modül Control.Parallel.Strategies' does not export parZipWith '. LineChunks.hs derlerken: Modül Control.Parallel.Strategies' does not export rnf '. Dürüst olmak gerekirse, acemi bir Haskell programcısı olarak dürüstçe, kodu değiştirmeye başladığımda başımın belaya girmesini bekledim - ama bir kitaptan kodla ilgili bir sorun yaşamayacağımı beklemiyordum!

+0

"Control.DeepSeq" http://www.haskell.org/hoogle/?hoogle=rnf – luqui

+0

'a ihtiyacınız olabilir. Bunu yeni yükledim, ancak hiçbir şey değişmedi. –

+0

@Clark sorunuzu cevaplamadıysa, lütfen söz konusu kodu gönderin. –

cevap

10

Bu işlev artık rnf olarak adlandırılmıyor. Şimdi rdeepseq deniyor. Sadece değiştir.

parallel paketinin içeriğini, "control parallel strategy hackage" komutunu kullanarak veya here öğesini tıklatarak bulabilirsiniz.

+0

Bu işe yaradı! Çok teşekkürler! Bu, derlediğim ilk Haskell koduydu ve daha kötü bir başlangıç ​​olamazdı. : P –

+1

Sorun değil! Haskell çok eğlenceli olabilir. Aynen böyle devam! –

+1

Bir yerde bir RWH errata sayfası var mı? Mtl 1.x -> 2.0 geçişi bir süreliğine raylara attı. – yatima2975

İlgili konular