У меня есть две последовательности: одна называется Hand с 5 элементами, другая называется Deck некоторого размера n. Мне нужно сначала добавить 1-й элемент колоды в руку (создает новую последовательность размером 6), а затем запустить функцию для этой новой последовательности, чтобы получить счет, например, 50. Затем мне нужно добавить 2-й элемент колоды в руку (снова новая последовательность размера 6) и запускает функцию, чтобы получить, скажем, 25 баллов.
Это нужно сделать для всех элементов в колоде, чтобы у меня была куча баллов. Неважно, будут ли эти оценки сохранены в виде списка или как-то иначе. Затем мне нужно найти среднее значение всех этих результатов и вернуть это значение.
Вот пример псевдокода того, что мне нужно:
Hand = {S2; C5; HK; D9; C1}, Deck = {...a bunch of cards...}
score[0] = CalcScore (Hand.append Deck[0]) //e.g. CalcScore ({S2; C5; HK; D9; C1; HJ})
score[1] = CalcScore (Hand.append Deck[1]) //e.g. CalcScore ({S2; C5; HK; D9; C1; D2})
score[n] = CalcScore (Hand.append Deck[n]) //e.g. CalcScore ({S2; C5; HK; D9; C1; SQ})
return averageScore = score.average
Я знаю, что если я могу создать список или последовательность, содержащую каждую из отдельных оценок, я могу просто использовать Seq.average/List.average, но я не уверен, как сделать первую часть с добавлением и запуском функции для каждого элемента отдельно и сохраняя это значение.
Мне трудно понять, как создавать функции высшего порядка, а F# для меня новый и сильно отличается от тех немногих языков, в которых я немного разбираюсь.
Любое руководство или информация очень поможет, спасибо!