urbit/include/g/z.h

35 lines
1.1 KiB
C
Raw Normal View History

2014-09-04 07:44:53 +04:00
/* include/g/z.h
**
** This file is in the public domain.
*/
/** Memoization.
***
*** The memo cache is keyed by an arbitrary symbolic function
*** and a noun argument to that (logical) function. Functions
*** are predefined by C-level callers, but 0 means nock.
***
*** The memo cache is within its road and dies when it falls.
***
*** Memo functions RETAIN keys and transfer values.
**/
2014-09-06 00:13:24 +04:00
/* u3_cz_find*(): find in memo cache.
2014-09-04 07:44:53 +04:00
*/
2014-09-06 00:13:24 +04:00
u3_weak u3_cz_find(u3_mote, u3_noun);
u3_weak u3_cz_find_2(u3_mote, u3_noun, u3_noun);
u3_weak u3_cz_find_3(u3_mote, u3_noun, u3_noun, u3_noun);
u3_weak u3_cz_find_4(u3_mote, u3_noun, u3_noun, u3_noun, u3_noun);
2014-09-04 07:44:53 +04:00
2014-09-06 00:13:24 +04:00
/* u3_cz_save*(): save in memo cache.
2014-09-04 07:44:53 +04:00
*/
2014-09-06 00:13:24 +04:00
u3_noun u3_cz_save(u3_mote, u3_noun, u3_noun);
u3_noun u3_cz_save_2(u3_mote, u3_noun, u3_noun, u3_noun);
u3_noun u3_cz_save_3(u3_mote, u3_noun, u3_noun, u3_noun, u3_noun);
u3_noun u3_cz_save_4
(u3_mote, u3_noun, u3_noun, u3_noun, u3_noun, u3_noun);
2014-09-04 07:44:53 +04:00
2014-09-06 00:13:24 +04:00
/* u3_cz_uniq(): uniquify with memo cache.
2014-09-04 07:44:53 +04:00
*/
2014-09-06 00:13:24 +04:00
u3_noun
u3_cz_uniq(u3_noun som);
2014-09-04 07:44:53 +04:00