私は2つの整数値mとnを取る関数を定義しようとしています。これは、長方形として表示できる値を返します。私のコードでHaskell - 文字列(サイズn)のリスト(サイズn)を生成しようとしています
e.g. rectangle 3 4
****
****
****
、私は私が間違った型[シャア]を持っていると言って構文エラーを取得していますが、私はどこにも文字を使用していませんよ。
コード:
rectangle :: Int -> Int -> [String]
rectangle m n = generateRectangle m n []
generateRectangle :: Int -> Int -> [String] -> [String]
generateRectangle m n currentRectangle =
if length currentRectangle < n then
generateRectangle m n (addRow m ""):currentRectangle
else
currentRectangle
addRow :: Int -> String -> String
addRow size currentRow =
if length currentRow < size then
addRow size currentRow++"*"
else
currentRow
エラー:
ERROR file:test.hs:8 - Type error in application
*** Expression : generateRectangle m n (addRow m "")
*** Term : addRow m ""
*** Type : [Char]
*** Does not match : [String]
'String'は' [Char] 'のエイリアスです.Hugsのような放棄コンパイラを使用しているときは、エラーメッセージが表示されない可能性があります。まだ維持されているので、Hugsを使ってGHCを使うことを強く主張します。 – bheklilr
@bheklilr私はそれを試してみます、提案のおかげで。私はこれが私たちの講師がみんなに使うように提案したものなので、これを使用しています。 –
ghciをチェックアウトすることをお勧めします。これはGHCのインタラクティブなコンポーネントで、Hugsのプロンプトによく似ています(それでも読んでも全く同じように動作しません)。あなたの講師がコードを提出したいと思っていて、GHCで動作するように書いたのであれば、Hugsがサポートしていないものを誤って使用した場合、Hugsで動作しない可能性があります。 –