Использование списка в рекурсивном вызове функции FizzBuzz

В качестве обучающего упражнения с кодом FizzBuzz на F #.

Ссылка с кодом здесь работает нормально и выглядит хорошо

В приведенном выше коде я хочу изучить / использовать match вместо условий if, как показано ниже, поэтому я написал ниже функцию, которая работает для любого заданного значения int.

let fizzbuzz num =
   match num with
   | x when (x % 3 = 0 && x % 5 = 0) -> printfn "%s" "FizzBuzz"
   | x when (x % 3 = 0) -> printfn "%s" "Fizz"
   | x when (x % 5 = 0) -> printfn "%s" "Buzz"
   | _ -> printfn "%s" (num.ToString())
;;

output:

fizzbuzz 15;;
FizzBuzz
val it : unit = ()

Однако в моем приведенном выше коде необходимо использовать список в качестве входных данных и выполнять функцию как рекурсивную. как я могу это сделать? Я понимаю работу списка, т.е. использую h :: t и передаю t в качестве восстановления в fizzbuzz . Думаю, я борюсь с синтаксисом.

Приложите к вам руководство по использованию списка (сопоставление с образцом и аргумент аккумулятора) в приведенном выше коде?

Есть ли какой-нибудь блог / справочник о том, как использовать интерактивное окно F # с меньшим количеством клавиш, так как я снова набирал полный код для любая синтаксическая ошибка

0
задан cdlane 24 May 2016 в 19:32
поделиться