Функция синхронизации в ракетке - PullRequest
0 голосов
/ 16 октября 2018

Синтаксис для функции синхронизации в Схеме сбивает с толку.Если я хочу проверить циклы процессора, я должен быть в состоянии обернуть весь мой код (time codestuff), и это должно привести к тому, что нет?Я получаю сообщение об ошибке всякий раз, когда пытаюсь обернуть его в (время).

lambda: no expression after a sequence of internal definitions in: lambda

Какие еще есть варианты, чтобы проверить использование ЦП для запуска моей программы в Схеме?

1 Ответ

0 голосов
/ 18 октября 2018

К сожалению, время не работает, если последняя форма в теле времени не является выражением.К счастью, (void) является (относительно) свободным выражением. 1 Вы можете просто добавить его как последнее выражение в теле вашего времени, давая вам:

(time
  .... your code here ....
  (void))

Итакнапример, следующий код даст вам результат, подобный следующему:

> (time
    (define x 
      (for/list ([i (in-range 1000000)])
        i))
    (void))
cpu time: 148 real time: 149 gc time: 124

1 Как и во всем, что касается CS и синхронизации, будет ли иметь значение здесь void или нетдействительно зависит.Но для многих случаев достаточно одного вызова void.

...