编写一个柯里化函数 f1,它将一个列表和一个正数 n 作为输入,并检查其中是否有任何元素恰好出现 n 次。
例如- f1 [1,2,1,3] 2; val it = true : bool - f1 [1,2,1,3] 3; 验证它 = 假:布尔
您需要计算列表中每个元素的出现次数。您将需要一个计算出现次数的函数,以及一个检查列表中每个元素与列表本身的函数。
fun isThereCeratinNumberOfOccurences(lst, count) =
let
fun countOccurences(lst, what) =
if null lst
then 0
else if hd lst = what
then 1 + countOccurences(tl lst,what)
else countOccurences(tl lst,what)
fun checkEachElement(lst, elements, number) =
if null elements
then false
else if countOccurences(lst, hd elements) = count
then true
else checkEachElement(lst, tl elements, count)
in
checkEachElement(lst, lst, count)
end