Я пытаюсь сделать «развернуть» - (я думаю), начиная с начального значения, неоднократно применяя к нему некоторую функцию, а затем получая последовательность в результате.
В этом примере я пытаюсь начать с 1,0, умножить его на 0,80 и сделать это 4 раза, так что я получаю массив = [| 1,0; 0,80; 0,64; 0,512 |]
VS 2010 говорит, что я использую «i» недопустимым образом, и что изменяемые значения не могут быть захвачены замыканиями - поэтому эта функция не компилируется. Может кто-нибудь предложить чистый подход, который действительно работает? Спасибо.
let expSeries seed fade n =
//take see and repeatedly multiply it by the fade factor n times...
let mutable i = 0;
let mutable weight = seed;
[| while(i < n) do
yield weight;
weight <- weight * fade |]
let testWeights = expSeries 1.0 0.80 4