PROGRAM CacheFunction.ms.script USES axiom_push.ms.dict ; USES Testing.ms.dict ; Test&Dump CacheFunction.ms.script.test : Cache.do TtfwWord IN aCacheWhere %REMARK 'Где кешировать результат' TtfwWord IN aCacheWhat %REMARK 'Что кешировать' ^ IN aLambda %REMARK 'Лямбда, которая вычисляет результат' aCacheWhere pop:Word:Name Log STRING VAR l_CacheWhat aCacheWhat pop:Word:Name >>> l_CacheWhat l_CacheWhat Log aLambda DO ; // Cache.do MACRO Cache axiom:PushSymbol @SELF axiom:PushSymbol Cache.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
Заметки о тестировании, программировании и прочий "поток сознания", который жалко писать "в стол"
суббота, 28 ноября 2015 г.
#1200. Кеширование результата функции. Шаг 4. Только код
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий