02: unique exprs: better concat

This commit is contained in:
ProgramSnail 2025-09-30 11:02:26 +03:00
parent 67fabd4dc2
commit 99b0b9d672

22
02.hs
View file

@ -101,19 +101,19 @@ nextExprsLists' newExprs oldExprs = let listNewExprs = [ e | e <- newExprs, type
let listOldExprs = [ e | e <- oldExprs, typeOf e == ListT] in
let intOldExprs = [ e | e <- oldExprs, typeOf e == IntT] in
nextSimpleExprsLists newExprs ++
[[e :+: e' | e <- listNewExprs, e' <- listNewExprs],
[e :+: e' | e <- listNewExprs, e' <- listOldExprs],
[e :+: e' | e <- listOldExprs, e' <- listNewExprs],
[SubList e from to | e <- listNewExprs, from <- intNewExprs, to <- intNewExprs],
[SubList e from to | e <- listOldExprs, from <- intNewExprs, to <- intNewExprs],
[SubList e from to | e <- listNewExprs, from <- intOldExprs, to <- intNewExprs],
[SubList e from to | e <- listNewExprs, from <- intNewExprs, to <- intOldExprs],
[SubList e from to | e <- listOldExprs, from <- intOldExprs, to <- intNewExprs],
[SubList e from to | e <- listOldExprs, from <- intNewExprs, to <- intOldExprs],
[SubList e from to | e <- listNewExprs, from <- intOldExprs, to <- intOldExprs]]
[concat [[e :+: e' | e <- listNewExprs, e' <- listNewExprs],
[e :+: e' | e <- listNewExprs, e' <- listOldExprs],
[e :+: e' | e <- listOldExprs, e' <- listNewExprs]],
concat [[SubList e from to | e <- listNewExprs, from <- intNewExprs, to <- intNewExprs],
[SubList e from to | e <- listOldExprs, from <- intNewExprs, to <- intNewExprs],
[SubList e from to | e <- listNewExprs, from <- intOldExprs, to <- intNewExprs],
[SubList e from to | e <- listNewExprs, from <- intNewExprs, to <- intOldExprs],
[SubList e from to | e <- listOldExprs, from <- intOldExprs, to <- intNewExprs],
[SubList e from to | e <- listOldExprs, from <- intNewExprs, to <- intOldExprs],
[SubList e from to | e <- listNewExprs, from <- intOldExprs, to <- intOldExprs]]]
nextExprs' :: [Expr] -> [Expr] -> [Expr]
nextExprs' newExprs oldExprs = concatShuffle $ nextExprsLists' newExprs oldExprs
nextExprs' newExprs oldExprs = concatShuffle $ nextExprsLists' newExprs oldExprs
data Example = Example {exampleInput :: [Int], exampleOutput :: [Int]}