私はHaskellでは初心者だし、私は疑問を持っている: 私が書くコード:ハスケルと文字列の長さ
word_list = ["list", "lol", "wordword"]
check str = if head str == 'l' then tail str else str
average wl = (length $ concat $ map check wl) `div` length wl
単語リスト内の各単語の最初の「L」の記号を削除する必要があり、このコード、連結が受け取った単語結果の文字列の長さを取得し、単語数をdivにする。
ので、このコードでは、私が受け取る必要があります。 3分の13 = 4333を...( "listlolwordword" = 15、 "istolwordword" = 13) しかし、私は動作しないだけで4
average :: [[Char]] -> Float
を受け取ります、私はエラーを受け取る。どこで私の間違い? ps。すみません、英語です
wow。どうもありがとうございます! パターンマッチングについて:素晴らしい!私はもっと毎日hasskelが好きです:) –
@user:concatMapもありますので、 'concat $ map'を実行する必要はありません。 –
と私は、より明確なアプローチはおそらく 'sum $ map(length。check)wl'です(しかし、融合はこれを重要でないものにします) – alternative