(* Lagkage.sml * Copyright 1998 Peter Sestoft. Må kopieres og modificeres jvfr. GNU General Public License *) fun lagkagegraf () = let val gen = Random.newgen () val n = Random.range (4, 9) gen val andele = List.tabulate(n, fn _ => Random.random gen + 0.05) fun loop 0 tilnu = tilnu | loop i res = let val (_, _, ordsek, ok) = Substant.vaelg (SOME (Basis.ubs, Basis.flt)) in if ok andalso List.all (fn ord1 => ord1 <> ordsek) res then loop (i-1) (ordsek :: res) else loop i res end val tekster = List.map (Format.flatten o Format.begyndelse) (loop n []) in Gdimage.stdoutGif (Graphs.piechart (500, 200) andele tekster) end val _ = lagkagegraf ();