我正在编写一个名为after的函数,它将整数列表和两个整数作为参数.在列表之后num1 num2应该返回True如果列表中出现num1并且列表afternum1中出现num2.(不一定紧接在之后).
after::[Int]->Int->Int->Bool
after [] _ _=False
after [x:xs] b c
|x==b && c `elem` xs =True
|x/=b && b `elem` xs && b `elem` xs=True
Run Code Online (Sandbox Code Playgroud)
这就是我到目前为止,我最大的问题是我不知道如何强制num2在num1之后.
我需要证明
f (g xs) == g (f xs)
Run Code Online (Sandbox Code Playgroud)
当 xs 是 Int 的有限列表时。
假设 f 和 g 都是 [Int]->[Int] 类型