From 38150f4f9792156d8c59439fe47ecb69a0a0e00b Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Wed, 5 Nov 2025 21:52:53 +0100 Subject: Implement D[map] --- src/Language/AST.hs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/Language') diff --git a/src/Language/AST.hs b/src/Language/AST.hs index a3b8130..3d6ede5 100644 --- a/src/Language/AST.hs +++ b/src/Language/AST.hs @@ -52,6 +52,7 @@ data NExpr env t where -- array operations NEConstArr :: Show (ScalRep t) => SNat n -> SScalTy t -> Array n (ScalRep t) -> NExpr env (TArr n (TScal t)) NEBuild :: SNat n -> NExpr env (Tup (Replicate n TIx)) -> Var name (Tup (Replicate n TIx)) -> NExpr ('(name, Tup (Replicate n TIx)) : env) t -> NExpr env (TArr n t) + NEMap :: Var name a -> NExpr ('(name, a) : env) t -> NExpr env (TArr n a) -> NExpr env (TArr n t) NEFold1Inner :: Var name1 (TPair t t) -> NExpr ('(name1, TPair t t) : env) t -> NExpr env t -> NExpr env (TArr (S n) t) -> NExpr env (TArr n t) NESum1Inner :: ScalIsNumeric t ~ True => NExpr env (TArr (S n) (TScal t)) -> NExpr env (TArr n (TScal t)) NEUnit :: NExpr env t -> NExpr env (TArr Z t) @@ -216,6 +217,7 @@ fromNamedExpr val = \case NEConstArr n t x -> EConstArr ext n t x NEBuild k a n b -> EBuild ext k (go a) (lambda val n b) + NEMap n a b -> EMap ext (lambda val n a) (go b) NEFold1Inner n1 a b c -> EFold1Inner ext Noncommut (lambda val n1 a) (go b) (go c) NESum1Inner e -> ESum1Inner ext (go e) NEUnit e -> EUnit ext (go e) -- cgit v1.2.3-70-g09d2