RosettaCodeData/Task/Topological-sort/J/topological-sort-1.j

9 lines
231 B
Text
Raw Permalink Normal View History

2013-04-11 01:07:29 -07:00
dependencySort=: monad define
parsed=. <@;:;._2 y
names=. {.&>parsed
depends=. (> =@i.@#) names e.S:1 parsed
depends=. (+. +./ .*.~)^:_ depends
assert.-.1 e. (<0 1)|:depends
(-.&names ~.;parsed),names /: +/"1 depends
)