- 539 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 06:06:12 ]
- pc12.2ch.net/test/read.cgi/tech/1252382593/516
# 2つの同じ要素数のリスト (Num a) => [a] を、 # 片方を1要素分横にずらして和を取りたいです。 # たとえば [1, 2, 3] と [7, 8, 9] であれば # [1, 2, 3, 0] と [0, 7, 8, 9] の和です。 # # 今は定義を素直に実装して次のようにやってます。 # shearAdd :: (Num a) => [a] -> [a] -> [a] # shearAdd as bs = zipWith (+) (as ++ [0]) (0 : bs) # # もっと洗練された方法はあるでしょうか。 # たとえば (++) 演算子は左辺のリストの要素数が大きいと不利なので、 # これを改善できるとか。
|

|