Haskellでappend[1,2,3][4,5]を入力すると[1,2,3,4,5]を出力するappend関数がよくわかりません。
(x : xs) ysでなにをやっているかわからないのでこちらのサイトを参考にしてtrace でデバッグしたいのですが
? No instance for (Show a) arising from a use of ‘show’
Possible fix:
add (Show a) to the context of
the type signature for:
append :: forall a. [a] -> [a] -> [a]
? In the first argument of ‘(++)’, namely ‘show x’
In the first argument of ‘trace’, namely
‘(show x ++ "" ++ show xs ++ "" ++ show ys)’
In the first argument of ‘($)’, namely
‘trace (show x ++ "" ++ show xs ++ "" ++ show ys)’
|
15 | trace (show x++""++show xs++""++show ys) $ --デバッグ
上記のエラーが吐かれます。
どのようにしたらappend (x : xs) ys =x : append xs ysを視覚化できるか教えてください
Haskell
1append :: [a] -> [a] -> [a] 2append [] ys = ys 3append (x : xs) ys = 4 trace (show x++""++show xs++""++show ys) $ --デバッグ 5 x : append xs ys 6
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/06/14 23:07