pp :: [a] -> [a]
pp list = case list of
[] -> []
(x: _) -> x : (qq list)
qq :: [a] -> [a]
qq list = case list of
[] -> []
(x: xs) -> (pp xs) ++ [x]
関数 pp は有限リストで終了しますか? もしそうなら: pp が n 要素のリストで呼び出された場合、関数 pp と qq は合計でどのくらいの頻度で呼び出されますか? pp が有限リストで終了しない場合、その理由はありません。
関数 pp は終了すると思います。pp が n 個の要素のリストで呼び出された場合、pp と q は合計で 2n を呼び出します。