Что я делаю не так в этом коде F #? - PullRequest
1 голос
/ 11 октября 2009

let параллельный тест n = цвет (Color.DeepPink, треугольники (сфера n)) ;;

Parallel.For (0,10, новое действие (parallelTest)) ;;

Сообщение об ошибке: ошибка FS0001: несоответствие типов. Ожидая int -> unit но учитывая int -> сцена. Тип 'unit' не соответствует типу 'scene'

Я буду рад, если какое-нибудь тело поможет мне.

Ответы [ 3 ]

4 голосов
/ 11 октября 2009

Составьте свою функцию с помощью ignore, чтобы она вернула unit:

Parallel.For(0, 10, parallelTest >> ignore)
3 голосов
/ 11 октября 2009

Если вы хотите 10 результатов, возможно, вы хотите

[| for i in 0..9 do
       async { return parallelTest i } |]
|> Async.Parallel
|> Async.RunSynchronously

Это вернет массив из 10 результатов сцены.

0 голосов
/ 11 октября 2009

В каком месте появляется это сообщение об ошибке? (Я не могу воспроизвести ошибку, так как не знаю, какие функции используются вами)

Я предполагаю следующее: Parallel.For ожидает int -> unit (Action<int> в стандартном .NET), но parallelTest имеет другой тип (int -> scene), который поэтому несовместим.

А чего вы пытаетесь достичь с помощью всего кода?

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