Я пишу код в F #, и мне нужно умножить и добавить каждый элемент в список кортежей (c,d)
по кортежу (a,b)
.Умножение списка кортежей на кортеж в F #
Чтобы уточнить,
- У меня есть некоторый набор
(a,b)
- и некоторый список кортежей
[(c,d),(e,f),(g,h)...]
- , и я пытаюсь получить
[(a*c,b*d),(a*e,b*f),(a*g,b*h)...]
- , и я пытаюсь получить (с отдельная функция)
[(a+c,b+d),...]
Я попытался использовать List.map
, чтобы умножить каждый элемент в списке на кортеж, но я получаю сообщение об ошибке, которое *
является недопустимым оператором для типа tuple.
Это, как я в конечном итоге реализации функции умножения рекурсивно поиска по шаблону:
let rec mtp(t:term,p:poly):poly =
match (t, p) with
| (a,b),[] -> []
| (a, b),(c,d)::ps -> (a*c,b*d)::mtp(t,ps)
Где термин кортеж поплавок * междунар и поли является список терминов
По крайней мере, показать, что вы пробовали и где вы застряли –
В SO ожидается, что вы показываете, что вы пытались так что 1. Мы не делаем домашнее задание для вас. 2. Чтобы мы могли увидеть, есть ли у вас простая ошибка, можно легко исправить. 3. Чтобы другие, у кого, вероятно, была такая же идея, как вы узнаете, имеют ли они ту же идею, что и вы. Поскольку вы не пытались, большинство из нас не даст вам ответа. Также вам нужно искать ответ в SO, поскольку подобный был указан только в предыдущие дни, например. [F # добавление многочленов рекурсивно] (http://stackoverflow.com/q/35376734/1243762) –
@GuyCoder благодарю вас, у меня действительно есть проблемы с чего начать! Ссылка, которую вы мне предоставили, очень помогла! Спасибо – Matthew