5

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]

余分なタイピングはあまり気にしませんが、意味がうまく伝わらないようです。この機能をどのように実装しますか?

4

1 に答える 1