所以我最近一直在使用列表。
我想创建一个非递归函数name: int list -> int
,它返回列表中最高和最低数字之间的差异。
是否有一种简单的方法可以使用list.fold, list.filter or list.exist?
我想我可以使用list.max
和list.min
执行此操作,但我想尝试其他一些功能。
任何帮助?
答案 0 :(得分:2)
你的意思是这样的吗?
let distanceMinMax xs =
let (min,max) = List.fold (fun (min, max) x -> ((if x < min then x else min), (if x > max then x else max)))
(System.Int32.MaxValue, System.Int32.MinValue)
xs
(max - min)
在REPL中测试:
> distanceMinMax [1;-1;2;5;7;-3];;
val it : int = 10
提示:不支持空列表[]:
> distanceMinMax [];;
val it : int = 1