Использование List.map для создания списка нечетных чисел - PullRequest
0 голосов
/ 08 июня 2018

Мой профессор предлагает нам создать ряд функций, относящихся к аппроксимации пи и е на основе непрерывных дробей.Чтобы настроить это, он заставляет нас создать функцию, которая берет целое число и отображает в квадрат столько нечетных чисел, начиная с 1. Например, вот желаемое поведение:

oddSquares 6;; 
val it : int list = [1.0; 9.0; 25.0; 49.0; 81.0; 121.0]

Я могуЯ вижу, что одно сопоставление, вероятно, будет использовано для возведения в квадрат всех значений в списке, но я не могу найти способ сопоставить число со списком чисел.Я не хочу просить кого-либо написать для меня код, но методично, что я пытаюсь сделать, когда собираю базовый список?

Такое чувство, что лучший способ - работать задом наперед, начинаяиз базового числа 6 сроков.Затем мы оцениваем шестой нечетный член (11, или 2x-1 практически), но затем требуется некоторый метод рекурсии, чтобы продолжить оценивать меньшие значения oddSquares.Я также думаю, что это противоречит духу попыток сопоставить число с этими значениями.Может ли кто-нибудь дать мне руководство относительно первого перевода номера в форму списка?

1 Ответ

0 голосов
/ 08 июня 2018

F # предлагает специальный аккуратный синтаксис для создания списков последовательных чисел:

let oneToSix = [1..6]

Это особый случай того, что называется «списком».Они могут быть более сложными, чем просто последовательные числа - они могут включать в себя несколько генераторов, фильтров, проекций, декартовых произведений и т. Д. В частности, вся ваша задача генерации первых N нечетных чисел может быть выражена как одно понимание списка.Однако, поскольку вы явно просили не писать код для вас, я не буду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...