summaryrefslogtreecommitdiff
path: root/src/GF/GFCC/Generate.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-10-05 08:17:27 +0000
committeraarne <aarne@cs.chalmers.se>2007-10-05 08:17:27 +0000
commitcc104236df63dafebaf87612aa379156cf914063 (patch)
tree2cad2a5e4cd021204bab62fdd0fe555e2f4e6d0d /src/GF/GFCC/Generate.hs
parent07d2910df14842b1882512af0cb3717be6c303bc (diff)
shifted to use general trees and types (with macros for c-f)
Diffstat (limited to 'src/GF/GFCC/Generate.hs')
-rw-r--r--src/GF/GFCC/Generate.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/GF/GFCC/Generate.hs b/src/GF/GFCC/Generate.hs
index 09212976a..8baaf12d7 100644
--- a/src/GF/GFCC/Generate.hs
+++ b/src/GF/GFCC/Generate.hs
@@ -11,16 +11,16 @@ import System.Random
generate :: GFCC -> CId -> [Exp]
generate gfcc cat = concatMap (\i -> gener i cat) [0..]
where
- gener 0 c = [tree (AC f) [] | (f, Typ [] _) <- fns c]
+ gener 0 c = [tree (AC f) [] | (f, ([],_)) <- fns c]
gener i c = [
tr |
- (f, Typ cs _) <- fns c,
+ (f, (cs,_)) <- fns c,
let alts = map (gener (i-1)) cs,
ts <- combinations alts,
let tr = tree (AC f) ts,
depth tr >= i
]
- fns = functionsToCat gfcc
+ fns c = [(f,catSkeleton ty) | (f,ty) <- functionsToCat gfcc c]
-- generate an infinite list of trees randomly
@@ -55,7 +55,7 @@ genRandom gen gfcc cat = genTrees (randomRs (0.0, 1.0) gen) cat where
in (t:ts, k + ks)
_ -> ([],0)
- fns cat = [(f,cs) | (f, Typ cs _) <- functionsToCat gfcc cat]
+ fns cat = [(f,(fst (catSkeleton ty))) | (f,ty) <- functionsToCat gfcc cat]
{-