о Func.repeatN - PullRequest
       10

о Func.repeatN

2 голосов
/ 22 июля 2011

В Expert F # есть код, подобный этому:

// Perform a CPU-intensive operation on the image.
    pixels |> Func.repeatN processImageRepeats (Array.map (fun b -> b + 1uy))

какая польза от Func.repeatN? кажется, его уже нет. Есть ли функция, которая заменяет Func.repeatN?

Для получения дополнительной информации: Я выполнил поиск в Google, там есть один, но я не могу получить доступ к этой сети (мое ключевое слово: Func.RepeatN): Обзор технологий сообщества от F # September 2008, 1.9.6.2 stuff.mit.edu/afs/athena.mit.edu/.../README-fsharp.html - Модуль перестановок остается в PowerPack; Func. *, Например Func.repeatN удален; Модули CompatArray и CompatMatrix удалены. ...

1 Ответ

1 голос
/ 22 июля 2011

Это определенно не стандартная функция библиотеки F #.

Если это не глава о производительности (где авторам просто необходима более медленная реализация в демонстрационных целях), функция, скорее всего, должна повторно применять указанное преобразование к входным данным, а затем к результату предыдущего приложения.Когда он достигнет нуля, он вернет исходный ввод без изменений.

Реализация - простая рекурсивная функция:

module Func = 
  let rec repeatN count f input = 
    // Repeating less than zero times - return the input
    if count <= 0 then input
    // Otherwise apply the function once and repeat (count - 1) times
    else repeatN (count - 1) f (f input)

РЕДАКТИРОВАТЬ Моя первоначальная мысль (теперь удаленная)Возможно, я ошибся (у меня нет книги для проверки), так что это улучшенный ответ.

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