我刚从 F# 开始,我想知道如何破译以下类型以及它们从书籍示例中代表什么:
type subs = Map<string,exp> option
type lp = (subs->subs) ->subs->subs // A LP computation
我知道子类型只是一个带有字符串和相关 exp 类型的映射......但我不明白“->”的使用以及lp类型分配的内容......
对破译lp类型的任何帮助都会很棒
->代表一个函数。例如,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,一个函数的类型。