1
以下示例是我在Haskell
中解決「取N個最頻繁的單詞」的嘗試。Haskell中的多態最大堆
我想打heap
功能兩個String
和Text
工作。 它適用於任何這些,但不是兩個,因爲a
是一個「剛性類型變量」。
Couldn't match type ‘a’ with ‘String’
‘a’ is a rigid type variable bound by
the type signature for heap :: H.Heap H.FstMaxPolicy (Occur, a)
什麼是根本問題?
{-# LANGUAGE OverloadedStrings, ExplicitForAll #-}
module Main where
import Data.MultiSet as M
import Data.String
import Data.Tuple as T
import Data.Text(Text)
import qualified Data.Text as T
import qualified Data.Heap as H
main = undefined
solution = H.take 3 heap
heap :: forall a. H.Heap H.FstMaxPolicy (Occur, a)
-- heap = foldr H.insert H.empty heapItems
heap = undefined
heapItems = fmap T.swap list
list = toOccurList frequencyDesc
frequencyDesc = foldr M.insert M.empty myWords
myWords :: forall a. (IsString a) => [a]
myWords = [ "a", "b", "a", "b", "c" ]
其實它更是一個http://stackoverflow.com/q/34398326/190376複製。 –
@ReidBarton我重新打開它,關閉你指出的新問題。但是,SO沒有向我顯示現在關閉的選項。 :/ – Sibi
還有[典型的MR問題](http://stackoverflow.com/q/32496864/791604)。 –