If the result of weight is (Maybe t) instead of the then the result of the array lookup can be passed out directly for the caller to check:
weight x y g = g!(x, y)
Is this what you mean?
Cheers,
Darren
How do I return Nothing from a function?Thank you for your time.
When there is no edge in the graph this code fails.
*** Exception: Graph.hs:65:9-26: Irrefutable pattern failed for pattern (Data.Maybe.Just w)
*Main> :t weight
weight
:: (Ix t1, Ix t2) => t1 -> t2 -> Array (t1, t2) (Maybe t) -> t
weight x y g = w
where
(Just w) = g!(x,y)
----
Sent from an expensive device which will be obsolete in a few months! :D
Casey
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners