假设有一个图表和一些函数集,例如:
create-node :: Graph -> (Graph, Node)
split-node :: Graph -> Node -> (Graph, Node, Node)
我想创建不期望Graph
作为参数的那些函数的版本,主要是为了方便(最好没有单子,所以我不需要将每个图形操作代码块包装在单子块中)。那么这个呢:
create-node :: (Graph -> (Graph, Node))
split-node :: (Graph -> Node) -> ((Graph -> Node), (Graph -> Node))
或更一般地说:
fun :: (Graph -> Argument) -> ... -> (Graph -> Result)
然后我就可以像使用(Graph -> ...)
普通节点一样使用这些值。最后,要从一个值中得到一个真实的图形(Graph -> ...)
,只需将它应用于一个空图形。这是一个合理的方法吗?