SML 函数类型

  • 本文关键字:类型 函数 SML sml
  • 更新时间 :
  • 英文 :


我很难理解我需要创建的某个 SML 函数的类型。

它是一个帮助程序函数,应从字符串列表中返回最长的字符串。类型应为:(int * int -> bool) -> string list -> string

我应该如何阅读本文以及如何创建匹配的函数?

我从以下简单的代码开始:

fun helper(x,y)=x>y

但是现在我应该有这个方法来返回一个字符串列表,然后返回一个字符串。但我似乎在这里遗漏了一些要点。

这是一个柯里函数的签名: (int * int -> bool) -> string list -> string

  • (int * int -> bool) :这是第一个参数,它是一个接收两个整数的元组并返回布尔值的函数。看起来像一个谓词函数。
  • string list:这是第二个参数,字符串列表
  • string :这是函数的结果类型。

例如,在编程语言的过程中(这似乎是问题的来源),所讨论的函数应该看起来像:

fun longest_string_helper f xs = ...

哪里

  • f 是类型 (int * int -> bool) 的函数值
  • xs 是类型为 string list 的列表值

当然,该函数返回一个string值。

请注意,函数声明中的参数由空格分隔,而不是在元组模式内。这证明这是一个柯里函数。您可以在第 3 节的课程阅读笔记中阅读有关此内容的内容,在另一个闭包习语:咖喱和部分应用(第 11 页)下。

最新更新