0

这是一个只检查前两个列表元素的柯里化函数。

fun inn list f = f(hd(list), hd(tl(list)));

我想知道的是我可以通过其他列表元素的任何方式。我不知道我如何使它递归。有谁能够帮助我?

4

1 回答 1

3

第一句话:永远不要使用hdand tl。请改用模式匹配。

我现在不知道你想让你的函数做什么,但这里有一个迭代列表并将 f 应用于每个元素的函数:

fun iter f l =
  case l of
    [] => ()
  | x::xs => (f x; iter f xs)

可以更简洁地写成

fun iter f [] = ()
  | iter f (x::xs) = (f x; iter f xs)

值得一提的是,这个功能在标准基础库中可用,名称为List.app.

于 2012-09-19T10:46:42.443 回答