pad
リストを受け取り、特定のサイズになるまでパディングする関数を書いています。私は2つの実装を試しました:
pad :: Monoid a => Int -> [a] -> [a]
pad len list = replicate (len - length list) mempty ++ list
と
pad :: Int -> a -> [a] -> [a]
pad len value list = replicate (len - length list) value ++ list
最初のものは の論理的な使用法のようですが、整数のリスト (または複数の方法でMonoid
あるもの) で呼び出すのは面倒です:Monoid
(fmap getSum) <$> pad 8 <$> (fmap Sum) <$> [1,2,3]
余分なタイピングはあまり気にしませんが、意味がうまく伝わらないようです。この機能をどのように実装しますか?