読者です 読者をやめる 読者になる 読者になる

Haskell触ってみる(2)

というわけで結構ヤバいのではと思いつつ触ってます。

正直言って寝起きなので変なこと書きまくってるかもしれない。
リポジトリはここでやってるのでツッコミをいただけるとありがたかったり。
haru2036/learnHaskell · GitHub
なんとかそれぞれの要素に対しての出現頻度を数えることができるようになりました。
ただなんか実行結果がfromListって関数が帰ってきてるようにしか見えないのでなんか違う感があったりする。

ソース:

import Data.List
import Data.HashMap.Lazy

searchAndCountWords :: String -> [String] -> Int
getUnigramFrequency :: [String] -> HashMap String Int

getUnigramFrequency sList = fromList [(a, searchAndCountWords a sList) | a <- nub sList]

searchAndCountWords key items = length $ Data.List.filter (==key) items

main = return $ getUnigramFrequency ["a", "a", "ba", "bb", "ab", "a"]

実行結果:

fromList [("bb",1),("ba",1),("ab",1),("a",3)]

HashMap使うためにはパッケージ追加でインストールしないといけないのねとか。
あと、Data.HashMap.LazyとData.HashMap.Strictってどっち使えばいいのかわからないし英語読めないので辛いし英語も勉強しないとヤバいのではってなってる