私のコードでは望みの結果が得られますが、これをコード化する良い方法があるのだろうかと思います。haskell最適化無限リストコード
pair [ 1 , 2 , 3 , 4 , 5 , 6 , ... ]
[ [ 1 , 2 ] , [ 3 , 4 ] , [ 5 , 6 ] , ... ]
と与えられたコード:
pair::[a] -> [[a]]
pair =
私のソリューション:
pair :: [a] -> [[a]]
pair (x:y:xs) = ((x:y:[]):[]) ++ pair xs
':': '++'は* O(n)*(* n *は最初のリストのサイズ)で動作しますが、 ':'は* O 。 –
@WillemVanOnsemもしあなたが '(++)'を '(:)'に置き換えることができたとしても、最初のリストのサイズが* O(1)*ならば、 '(++)'も* O (1)*。だから、 '(:)'は '(++)'より恒常的に速い定数であるかもしれませんが、漸近的には同じです。 – jpath
あなたは質問を述べなかった。 –