私はプログラミング言語として関数型プログラミングと Haskell の初心者です。コマンドラインから数値を入力した後、それらの数値をリストに入れ、そのリストをパラメーターとして渡して合計を計算します。ここに私が取り組んでいるものがあります:
import Data.List
iotxt :: IO ()
main :: IO ()
l1 = []
iotxt = do a <- getLine
-- read in numbers that are not equal to -1
insert (read a) l1
if (not ((read a) == -1.0))
then iotxt
else do return ()
main = do
putStrLn("Enter a number [-1 to quit]")
iotxt
-- size of the list
print(length [l1])
-- sum
しかし、リスト内に値を配置しようとすると、次のエラーが発生します。
Couldn't match expected type `IO a0' with actual type `[a1]'
In the return type of a call of `insert'
In a stmt of a 'do' block: insert (read a) l1
In the expression:
do { a <- getLine;
insert (read a) l1;
if (not ((read a) == - 1.0)) then iotxt else do { return () } }