中国剰余定理を解くことができる関数を Haskell で作成する必要があります。次の定義で作成する必要があります。
crt :: [(Integer, Integer)] -> (Integer, Integer)
答えは次のようになります
>crt [(2,7), (0,3), (1,5)]
(51, 105)
私は全体的なアイデアを持っていると思いますが、それを書く知識がありません。私は、crt 関数が再帰的でなければならないことを知っています。タプルのリストを 2 つのリストのタプルに分割するヘルパー関数を作成しました。
crtSplit xs = (map fst xs, product(map snd xs))
この例では、次のようになります。
([2,0,1],105)
私が知る必要があるのは、最初のリストの各要素のリストを作成することだと思います。どうすればこれを始められますか?