From 2de78af58401cb3d9dcdec50326d794f4c65a374 Mon Sep 17 00:00:00 2001 From: ralf Date: Wed, 14 Jan 2004 14:58:57 +0000 Subject: [PATCH] [project @ 2004-01-14 14:58:57 by ralf] Added gdepth to determine depth of a term. --- Data/Generics/Reify.hs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Data/Generics/Reify.hs b/Data/Generics/Reify.hs index a5f5244..9e70fbb 100644 --- a/Data/Generics/Reify.hs +++ b/Data/Generics/Reify.hs @@ -34,6 +34,7 @@ module Data.Generics.Reify ( -- * Generic operations to reify terms glength, + gdepth, gcount, gnodecount, gtypecount, @@ -156,6 +157,11 @@ glength :: GenericQ Int glength = length . gmapQ (const ()) +-- | Determine depth of the given term +gdepth :: GenericQ Int +gdepth = (+) 1 . foldr max 0 . gmapQ gdepth + + -- | Determine the number of all suitable nodes in a given term gcount :: GenericQ Bool -> GenericQ Int gcount p = everything (+) (\x -> if p x then 1 else 0) -- 1.7.10.4