-1

编写一个柯里化函数 f1,它将一个列表和一个正数 n 作为输入,并检查其中是否有任何元素恰好出现 n 次。

例如- f1 [1,2,1,3] 2; val it = true : bool - f1 [1,2,1,3] 3; 验证它 = 假:布尔

4

1 回答 1

0

您需要计算列表中每个元素的出现次数。您将需要一个计算出现次数的函数,以及一个检查列表中每个元素与列表本身的函数。

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
于 2013-10-24T07:31:56.053 回答