0

こんにちは、文字列内の単語を合計するだけの入力 "=" で (7 行目) 解析エラーが発生しています。助けていただければ幸いです。ありがとう。

module Main where

main = do
 putStr "Enter a string: "
 input <- getContents

 value = unwords . sum . words input
 putStrLn (value)
4

1 に答える 1

4

この線:

value = unwords . sum . words input

構文的に有効ではありません。letステートメントが必要です。

let value = unwords . sum . words input

これはまだ有効ではありません。関数(3つの関数の合成)を入力に適用する必要があります。

let value = (unwords . sum . words) input

多分:

let value = unwords . sum . words $ input

String入力がaであり、結果が( )wordsのリストであるため、これはまだ有効ではありません。したがって、文字列を何らかのタイプ(s?)に読み込んでから、に変換し直す必要があります。 単語の最後に合計が1つしかないため、役に立ちません(単語のリストに対して、単語を削除する必要があります)。String[String]NumIntegerStringunwords

let value = show . sum . map read. words $ input

タイプによっては、読み取りまたは合計に注釈を付けて、それがanIntまたはaDoubleまたはその他のものであるかどうかを指定することもできます。

于 2012-05-19T18:27:19.580 に答える