есть дата тип:
data Term = S | K | I | App Term Termнужно проверить соответствует ли Term определенной форме
правила довольно простые:
S x y z -> x z (y z)
K x y -> x
I x -> xнапример:
(App(App(App S K)I)I)возвращает True, т.к. S KII -> KI (II) -> K II -> I
или например:
(App (App I K) (App (App K I) K))возвращает False, т.к. (I K) ((K I )K) -> K ((K I) K), т.е. К имеет только один аргумент и не сокращается.
не могу понять как в Haskell посмотреть за скобки в рекурсии, если возвращается тип (I K или S).
помогите нубу )

