tfwh-0.3.7.0

Safe HaskellSafe
LanguageHaskell2010

TFwH.Anagrams

Description

アナグラム一覧

Synopsis

Documentation

type Word = String Source #

単語の型

type Label = String Source #

ラベルの型

anagrams :: Int -> [Word] -> String Source #

anagrams n はアルファベット順の英単語リストから n 文字の単語だけを選別し, 同じアナグラムになる単語をまとめた結果を表示するための文字列を生成する. この文字列を表示するとn文字の単語のアナグラムの一覧となる.

anagrams n = unlines        -- 連結する
           . map showEntry  -- エントリーを文字列に変換する
           . groupByLabel   -- 同一ラベルのラベル付き単語をグループ化してエントリー作成する
           . sortLabels     -- ラベル付き単語をラベルの辞書順でソートする
           . map addLabel   -- 単語にラベルを追加する
           . getWords n     -- n 文字の単語だけ取り出す

getWords :: Int -> [Word] -> [Word] Source #

n 文字の単語だけを濾過

addLabel :: Word -> (Label, Word) Source #

単語にラベルを追加

sortLabels :: [(Label, Word)] -> [(Label, Word)] Source #

ラベル付き単語をラベルの辞書順でソート

groupByLabel :: [(Label, Word)] -> [(Label, [Word])] Source #

同一ラベルの付いた単語をグループ化してエントリー作成

showEntry :: (Label, [Word]) -> String Source #

エントリーを文字列に変換