суббота, 28 ноября 2015 г.

#1199. Кеширование результата функции. Шаг 3. Только код

PROGRAM CacheFunction.ms.script

USES
 Testing.ms.dict
;

Test&Dump CacheFunction.ms.script.test

 : Cache
   TtfwWord IN aCacheWhere
    %REMARK 'Где кешировать результат'
   ^ IN aLambda
    %REMARK 'Лямбда, которая вычисляет результат'
  aLambda DO
 ; // Cache

 : A

  STRING FUNCTION X
   '1' >>> Result
  ; // X

  ERROR 'fake A'
 ; // A

 : B

  STRING FUNCTION X
   '2' >>> Result
  ; // X

  ERROR 'fake B'
 ; // B

 STRING FUNCTION X
   TtfwWord IN aWord
  aWord Cache ( aWord %% 'X' pop:Word:Name ) >>> Result
 ; // X

 @ A X .
 @ B X .
; // CacheFunction.ms.script.test

CacheFunction.ms.script.test

Комментариев нет:

Отправить комментарий