У меня есть этот код в VBA (зацикливание через массив а() типа двойного):F # хитрым рекурсивный алгоритм
bm = 0 'tot
b = 0 'prev
For i = 24 To 0 Step -1
BP = b 'prevprev = prev
b = bm 'prev = tot
bm = T * b - BP + a(i) 'tot = a(i) + T * prev - prevprev
Next
p = Exp(-xa * xa) * (bm - BP)/4 '* (tot - prevprev)/4
Я ставлю это в F #. Очевидно, я мог бы использовать массив и изменяемые переменные для воссоздания VBA. И, может быть, это пример правильного времени использования mutable, о котором я видел. Но почему бы не попытаться сделать это самым идиоматическим способом?
Я мог бы написать небольшую рекурсивную функцию для репликации цикла. Но это похоже на то, что засоряется, чтобы вывесить небольшую подколесу, которая не имеет никакого значения сама по себе как автономная, названная функция.
Я хочу сделать это со списком функций. У меня есть пара идей, но я еще не там. Кто-нибудь получил это в мгновение ока?
Две туманные идеи, которые у меня есть: 1. Я мог бы сделать еще два списка, отрубив один (и два) элемента и добавив нулевой элемент (ы). И объедините эти списки. 2. Мне интересно, может ли функция списка, например map, использовать в качестве аргументов термины в списке. 3. Как общий вопрос, я задаюсь вопросом, может ли это быть случай, когда опытный человек скажет, что эта проблема кричит о изменчивых ценностях (и если это так ослабит мой энтузиазм, чтобы попасть на функциональную лодку).
Чтобы дать больше интуиции для кода: полная функция, из которой это выписано, является численным приближением для кумулятивного нормального распределения. Я не искал математику за этим. «xa» - это абсолютное значение аргумента главной функции «x», которое является числом стандартных отклонений от нуля. Не работая через доказательство, я не думаю, что есть что сказать больше, чем: это просто формула. (О, и, возможно, мне нужно изменить имена переменных - xa и bm и т. Д. - довольно убогие. Я сделал предложения в качестве комментариев.)
Чистых запросов кода письма являются вне темы на переполнение стека - мы ожидаем, что вопросы здесь, чтобы относиться к * * специфические проблемы программирования - но мы с радостью помогут вам написать его сами! Сообщите нам [что вы пробовали] (http://whathaveyoutried.com), и где вы застряли. Это также поможет нам лучше ответить на ваш вопрос. – CoderDennis
Хорошо, спасибо. Я добавлю немного. Это тяжело. Я все еще пытаюсь настроить его достаточно разумно, чтобы создать его. – RomnieEE
Возможно, также включают в себя те 'T' и' xa', и описание того, что вещь должна делать. – CoderDennis