Мне нужно написать функцию или функции в Haskell, которые могут решить теорему китайского останова. Он должен быть создан с помощью следующего определения:Теорема китайского останова Haskell
crt :: [(Integer, Integer)] -> (Integer, Integer)
Это ответ выглядит
>crt [(2,7), (0,3), (1,5)]
(51, 105)
Я думаю, что у меня есть общее представление, я просто не хватает знаний, чтобы написать ее. Я знаю, что функция crt должна быть рекурсивной. Я создал вспомогательную функцию, чтобы разбить список кортежей в кортеж из двух списков:
crtSplit xs = (map fst xs, product(map snd xs))
Который, в этом примере, дает мне:
([2,0,1],105)
Я думаю, что мне нужно сделать знать создает список для каждого из элементов в первом списке. Как я начну это делать?
Мне нужно создать функцию с элт :: [(Integer, Integer)] -> (Integer, Integer), и я не могу импортировать внешние данные. – JMV12