K
Size: a a a
K
[
length xs <= val всегда лучше писать null (drop val xs), по крайней мере с листамиI
c
[
c
c
[
[

K
import Data.Monoid
type TS a = [(Integer, Maybe a)]
combine :: TS a -> TS a -> TS a
combine ts [] = ts
combine [] ts = ts
combine ((i, xi) : as) ((j, xj) : bs) =
case compare i j of
EQ -> (i, getLast (Last xi <> Last xj)) : combine as bs
LT -> (i, xi) : combine as ((j, xj) : bs)
GT -> (j, xj) : combine ((i, xi) : as) bs
as = [(0, Just 1), (1, Nothing), (2, Just 2), (3, Just 3)]
bs = [(1, Just 2), (2, Nothing), (3, Just 2), (4, Just 5)]
test = combine as bs
[
c
VN
[

K
Last