我怎么会return这个功能?

How would I return this function?

我想编写一个函数,它接受一个字符串列表,该列表包含一个 4 个字母的单词、3 个字母的单词和一个五个字母的单词,它 returns 一个包含三个字符串的元组列表。

let word ( str : string list) : (string * string * string) list =
  match str with
  | [] -> []
  | x :: xs -> 
    let helper x = 
      String.length x = 4 
    in 
    List.filter helper str

到目前为止我的代码是先尝试过滤掉 4 个字母的单词,但是我不确定从这里移到哪里

正如您所表明的,您确实想要一个类型的函数:

string list -> string list * string list * string list

其中三个、四个和五个字母的单词被过滤到这三个列表中,并且您可以过滤一个列表以找到四个字母的单词,应该可以直接推断出解决方案。

let filter words =
  (...,
   List.filter (fun w -> String.length w = 4) words,
   ...)

我留下填写 ... 作为你的练习。