5. implements hint at %11 and wish at %12 (4K)
{$7 b/* c/*} $(fol =>(fol [2 b 1 c]))
{$8 b/* c/*} $(fol =>(fol [7 [[7 [0 1] b] 0 1] c]))
{$9 b/* c/*} $(fol =>(fol [7 c 2 [0 1] 0 b]))
+ {$11 @ c/*} $(fol c.fol)
+ {$11 {b/* c/*} d/*}
+ =+ ben=$(fol c.fol)
+ ?. ?=($0 -.ben) ben
+ ?: ?=(?($hunk $hand $lose $mean $spot) b.fol)
+ $(fol d.fol, tax [[b.fol p.ben] tax])
+ $(fol d.fol)
+ ::
+ {$12 b/* c/*}
+ =+ ref=$(fol b.fol)
+ =+ ben=$(fol c.fol)
+ ?. ?=($0 -.ref) ref
+ ?. ?=($0 -.ben) ben
+ =+ val=(gul p.ref p.ben)
+ ?~(val [%1 p.ben ~] ?~(u.val [%2 [[%hunk (mush p.ben)] tax]] [%0 u.u.val]))
+ ::
{$13 @ c/*} $(fol c.fol)
{$13 {b/* c/*} d/*}
=+ ben=$(fol c.fol)
{$7 p/nock q/nock} :: serial compose
{$8 p/nock q/nock} :: push onto subject
{$9 p/@ q/nock} :: select arm and fire
+ {$11 p/$@(@ {p/@ q/nock}) q/nock} :: hint
+ {$12 p/nock q/nock} :: grab data from sky
{$13 p/$@(@ {p/@ q/nock}) q/nock} :: (tmp) hint
{$14 p/nock q/nock} :: (tmp) wish
{$0 p/@} :: axis select
::
|=(noun ^$(bus one, fol +<))
::
+ :: 11; static hint
+ ::
+ {$11 @ c/*}
+ :: ignore hint
+ ::
+ $(fol c.fol)
+ ::
+ :: 11; dynamic hint
+ ::
+ {$11 {b/* c/*} d/*}
+ :: noy: dynamic hint
+ ::
+ =+ noy=$(fol c.fol)
+ :: propagate stop
+ ::
+ ?~ noy ~
+ :: if hint is a fully computed trace
+ ::
+ ?: &(?=($spot b.fol) ?=([[%full ~] *] noy))
+ :: compute within trace
+ ::
+ ~_((show %o +.noy) $(fol d.fol))
+ :: else ignore hint
+ ::
+ $(fol d.fol)
+ ::
:: 13; static hint
::
{$13 @ c/*}
|= nug/nock
?- nug
{$0 *} p.nug
- {$13 *} $(nug q.nug)
+ {?($11 $13) *} $(nug q.nug)
* ~_(leaf+"cove" !!)
==
++ comb :: combine two formulas
