キューを定義し、次の関数があるとします。
pushq :: a -> Queue a -> Queue a
pushq x (Queue1 xs) = Queue1 (x:xs)
単一の要素をキューの先頭に追加することで機能しますが、次のような単一の要素ではなく、要素のリスト全体をキューに追加する別のメソッドで関数を使用したいとします。
adds :: [a] -> Queue a -> Queue a
リストを繰り返し処理し、すべての要素でpushq関数を1つずつ使用して、キューに追加するにはどうすればよいですか?
リストを繰り返し処理し、すべての要素でpushq関数を1つずつ使用して、キューに追加するにはどうすればよいですか?
再帰を介して。空のリストの場合は、Queue a
それ自体を返すことができます。
adds [] qs = qs
空でないリストの場合、最初にリストadds
の末尾を呼び出し、次にその要素をキューにプッシュします。
adds (x:xs) q = pushq … (adds …)
あなたはまだ…
ここにsを記入する必要があります。これは演習として残しておきます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加