【发布时间】:2021-09-20 10:40:49
【问题描述】:
我需要编写一个函数,它接受一个字符串列表并在列表中找到最大的字符串。在平局的情况下,它应该返回最接近列表末尾的字符串。问题是它需要使用 List.foldl 遍历列表,并且不能使用递归调用,除了 List,foldl 的库函数中的调用。 以下代码运行良好。
fun longest_string2 str_list =
List.foldl(fn (x, acc) => if String.size x >= String.size acc then x else acc) "” str_list
如果我在 REPL 中运行 longest_string2 ["Apple", "ball", "Bpple”];,我会得到 val it = "Bpple" : string
但是,如果我如下反转匿名函数的参数,我会得到val it = "Apple" : string。
由于匿名函数是通过名称而不是位置访问元素,为什么这会有所不同?
【问题讨论】:
标签: sml