From bed22d326d1a7555dbcfd589da51a592bfa9113b Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Fri, 23 Jun 2017 19:48:36 -0400 Subject: - Added Fold structure for rose trees. --- stdlib/source/lux/data/coll/tree/rose.lux | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'stdlib/source') diff --git a/stdlib/source/lux/data/coll/tree/rose.lux b/stdlib/source/lux/data/coll/tree/rose.lux index 5493d6692..b4ac0c313 100644 --- a/stdlib/source/lux/data/coll/tree/rose.lux +++ b/stdlib/source/lux/data/coll/tree/rose.lux @@ -3,8 +3,9 @@ (lux (control functor monad eq - ["p" parser]) - (data (coll [list "L/" Monad])) + ["p" parser] + fold) + (data (coll [list "L/" Monad Fold])) [macro] (macro [code] ["s" syntax #+ syntax: Syntax]))) @@ -63,3 +64,10 @@ {#value (f (get@ #value fa)) #children (L/map (map f) (get@ #children fa))})) + +(struct: #export _ (Fold Tree) + (def: (fold f init tree) + (L/fold (function [tree' init'] (fold f init' tree')) + (f (get@ #value tree) + init) + (get@ #children tree)))) -- cgit v1.2.3