tag:blogger.com,1999:blog-1436098877388372574.post5064091288855305507..comments2023-10-25T09:07:12.472+00:00Comments on oogifu: Another Scala code snippet for linearising a graphTango Juliethttp://www.blogger.com/profile/13490879613902305035noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-1436098877388372574.post-47887922288620667852013-06-08T11:53:26.931+00:002013-06-08T11:53:26.931+00:00From TJ to HS: Good, first useful use of foldRight...From TJ to HS: Good, first useful use of foldRight I have seen :-)Tango Juliethttps://www.blogger.com/profile/13490879613902305035noreply@blogger.comtag:blogger.com,1999:blog-1436098877388372574.post-80370847487556017802013-06-08T11:52:35.519+00:002013-06-08T11:52:35.519+00:00From HS:
def linearize(graph: Graph) = {
def ...From HS:<br /><br />def linearize(graph: Graph) = {<br /> def dfs(node: Node):List[Node] = if (node.children.isEmpty) List() <br /> else (for(c <- node.children) yield c :: dfs(c)).flatten <br /> (for(node <- graph.nodes if node.parents.isEmpty) yield (node, <br /> node :: dfs(node).foldRight(List[Node]())(((x, list) => if(list.contains(x)) list else list.+:(x))))).toMap<br /> }Tango Juliethttps://www.blogger.com/profile/13490879613902305035noreply@blogger.com