1

我刚从 F# 开始,我想知道如何破译以下类型以及它们从书籍示例中代表什么:

type subs = Map<string,exp> option

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

我知道子类型只是一个带有字符串和相关 exp 类型的映射......但我不明白“->”的使用以及lp类型分配的内容......

对破译lp类型的任何帮助都会很棒

4

1 回答 1

2

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

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

函数可以将函数作为参数,所以lpis (subs -> subs) -> subs -> subs,也写为(subs -> subs) -> (subs -> subs)。它是一个带有函数的函数。如果它令人困惑,请尝试将其视为fn -> (subs -> subs), where type fn = subs -> subs,一个函数的类型。

另见:http ://en.wikipedia.org/wiki/Higher-order_function

于 2013-10-10T06:04:45.767 回答