diff options
Diffstat (limited to 'starts/meaning-vm/habit-starts/learning-parts.cpp')
-rw-r--r-- | starts/meaning-vm/habit-starts/learning-parts.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/starts/meaning-vm/habit-starts/learning-parts.cpp b/starts/meaning-vm/habit-starts/learning-parts.cpp index eebd054..92afc7d 100644 --- a/starts/meaning-vm/habit-starts/learning-parts.cpp +++ b/starts/meaning-vm/habit-starts/learning-parts.cpp @@ -8,11 +8,33 @@ static int __init = ([]()->int{ ahabit(happened-habit, { ref ev = ctx.get(happens); - // TODO: perform each associated event + // TODO: perform each event associated with ctx[happens] (see line above) + + // use a sub-habit for each call, so we can handle happened for them, too. }); ahabit(whenever-habit, { + // store ctx[action] on ctx[happens] as behavior to do + // store ctx[action-context] as context for behavior + // PROPOSE: automatically place [happened] inside [action-context] as a stub + // for call event objects, and then place [context] inside [happened]. + // PROPOSE: report error if [action-context] contains [happened] + // as a stub for error patterns, it would be pretty nice to throw + // a unique concept ref for each error type. plan to add to level-0. + }); + + ahabit(stop-when-habit, + { + // remove doing ctx[action] for ctx[happens] + }); + + ahabit(once-habit, + { + // takes ctx[action] and ctx[happens] and ctx[action-context] + // uses above habits to do the action only once, probably by using + // a trigger on the habit-happening habit to check if a label is set, + // and remove the habit if it is. }); return 0; |