Name: Anonymous 2009-10-28 21:29
Name one noteworthy program that was coded in LISP.
I'll wait.
I'll wait.
import List
import Control.Monad.Instances
computeGraph removalOrder = edges
where
{ ((lastVertex:_), edgeStarts) = mapAccumL getStart vertices (tails removalOrder)
; getStart vertices order = ((,) =<< (vertices \\) . (:[])) $ head (vertices \\ order)
; vertices = [1..maximum removalOrder + 2]
; edges = zip (init edgeStarts ++ [lastVertex])
(removalOrder ++ [last edgeStarts]) }