通常,以下内容用于计算列表的长度
(* Compute the length of a list *)
fun length(L) =
if null L then 0
else 1 + length (tl (L));
但是如何通过仅计算5到10之间来指定成员的范围?
foldr
,该怎么办? 答案 0 :(得分:0)
在List.foldr的lambda函数中,如果元素与条件匹配,则应将总数加1,如果不匹配则应加0。这样,您就可以跟踪符合条件的元素数量。
val xs = [1,3,5,8,6,9,10,14,13,16,15]
val len = List.foldr (fn (x, t) => (if x > 5 andalso x < 15 then 1 else 0) + t) 0 xs
这是你运行它时得到的:
val xs = [1,3,5,8,6,9,10,14,13,16,15] : int list
val len = 6 : int