F#用地图解密一个类型

时间:2013-10-10 05:38:18

标签: map f#

我刚刚开始使用F#,我想知道如何从书籍示例中解读以下类型及其代表:

type subs = Map<string,exp> option

type lp = (subs->subs) ->subs->subs // A LP computation

我理解子类型只是一个包含字符串和关联exp类型的地图......但我不明白使用' - &gt;'以及lp类型分配的内容......

有关解密lp类型的任何帮助都很棒

1 个答案:

答案 0 :(得分:2)

->代表一个函数。例如,string -> int表示将字符串作为参数的函数,并返回一个整数。

如果您链接->,则从右到左阅读:a -> b -> c -> da -> (b -> (c -> d))

函数可以将函数作为参数,因此,lp(subs -> subs) -> subs -> subs,它也被写为(subs -> subs) -> (subs -> subs)。这是一个功能。 如果令人困惑,请尝试将其视为fn -> (subs -> subs),其中type fn = subs -> subs是函数的类型。

另请参阅:http://en.wikipedia.org/wiki/Higher-order_function