RosettaCodeData/Task/Topological-sort/J/topological-sort-1.j
2023-07-01 13:44:08 -04:00

8 lines
231 B
Text

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
)