From 99b0b9d6729f6f64238349e5fe806bfd62affdd5 Mon Sep 17 00:00:00 2001 From: ProgramSnail Date: Tue, 30 Sep 2025 11:02:26 +0300 Subject: [PATCH] 02: unique exprs: better concat --- 02.hs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/02.hs b/02.hs index c420895..fc770f9 100644 --- a/02.hs +++ b/02.hs @@ -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]}