我刚刚开始使用F#,我想知道如何从书籍示例中解读以下类型及其代表:
type subs = Map<string,exp> option
type lp = (subs->subs) ->subs->subs // A LP computation
我理解子类型只是一个包含字符串和关联exp类型的地图......但我不明白使用' - &gt;'以及lp
类型分配的内容......
有关解密lp
类型的任何帮助都很棒
答案 0 :(得分:2)
->
代表一个函数。例如,string -> int
表示将字符串作为参数的函数,并返回一个整数。
如果您链接->
,则从右到左阅读:a -> b -> c -> d
为a -> (b -> (c -> d))
。
函数可以将函数作为参数,因此,lp
是(subs -> subs) -> subs -> subs
,它也被写为(subs -> subs) -> (subs -> subs)
。这是一个功能。
如果令人困惑,请尝试将其视为fn -> (subs -> subs)
,其中type fn = subs -> subs
是函数的类型。