2016-11-06 13 views
0
insert :: Eq(a) => a -> a -> [a] -> [a] 
insert m n [] = [] 
insert m n (x1:x1:xs) | m==x = n : x : insert m n xs 
    | otherwise = x : insert m n xs 

insert関数はすでに機能しています。私はinterspaceの助けが必要です。目的は、与えられた2つの他の要素の間に2つの要素を書きたいということです。プログラムはHaskellで書かれています。 interspace関数は、指定された2つの要素がリスト内にある場合、それらの要素の間に指定された要素を書き込む必要があります。ハスケルのインタースペース関数

interspace :: Eq(a) => a -> a -> a->[a] -> [a] 
interspace m n q[] = [] 
interspace m n q (x:xs)| m==x && q==(head xs) = n: x : insert m n (headxs)++interspace m n q (xs) 
    | otherwise = x : interspace m n q xs 
+0

のようになります'。 –

+0

あなたは私に新しいコードを教えていただけますか? –

+0

質問はまだ悪いです。あなたはそれを改善するために最初のコピーを編集する必要があります。 – dfeuer

答えて

0

あなたのプログラムは `(X1:X2:XS)に対してmatcingてみ

interspace m n q [] = [] 
interspace m n q (x1:x2:xs) | .... = .... 
interspace m n q (x:xs) = x : interspace m n q xs