私はコマンドラインからint値を取得して、disp
関数に渡そうとしています。 GHCによって与えられたHaskell:コマンドライン引数をintとして読み込むには?
import System(getArgs)
main = do
args <- getArgs
disp $ read $ head args :: Int
disp n = take n $ repeat 'S'
エラーが
Couldn't match expected type `Int' with actual type `[Char]'
In the expression: disp $ read $ head args :: Int
In the expression:
do { args <- getArgs;
disp $ read $ head args :: Int }
In an equation for `main':
main
= do { args <- getArgs;
disp $ read $ head args :: Int }
おかげです。
引数をintとして解析するにはread ::(Read a)=> [Char] - > aを使用する必要があります(Intは読み込みのインスタンスです) – bennofs
上記の 'read'を使用しています。 prelude作品から 'read'を使う例: 'take(read $ head [" 5 "、" 4 "、" 3 "] :: Int)[x | x < - [1..19]] 'は[1,2,3,4,5]を与えます。 – boring
あなたがそこに追加した ':: Int'を削除するだけです。それは、使用する 'read'を使い果たします。 –