diff options
author | olpc user <olpc@xo-5d-f7-86.localdomain> | 2020-01-10 14:56:27 -0800 |
---|---|---|
committer | olpc user <olpc@xo-5d-f7-86.localdomain> | 2020-01-10 14:56:27 -0800 |
commit | 26c980d302adce8e3d802cb8db8ab1c69d58ce1a (patch) | |
tree | e296225f17370c9e472660396b3a51539f76ff28 /intellect-framework-from-internet/starts/random-harmonic-hospital/coding-assister.js | |
parent | 2e01fed206e46a669ba56f57b4b943cfe661a0f1 (diff) | |
parent | c8bb547bea279af2bb48c13260f98aa8add07131 (diff) | |
download | standingwithresilience-26c980d302adce8e3d802cb8db8ab1c69d58ce1a.tar.gz standingwithresilience-26c980d302adce8e3d802cb8db8ab1c69d58ce1a.zip |
Merge branch 'intellect-framework-from-internet'
Diffstat (limited to 'intellect-framework-from-internet/starts/random-harmonic-hospital/coding-assister.js')
-rw-r--r-- | intellect-framework-from-internet/starts/random-harmonic-hospital/coding-assister.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/intellect-framework-from-internet/starts/random-harmonic-hospital/coding-assister.js b/intellect-framework-from-internet/starts/random-harmonic-hospital/coding-assister.js new file mode 100644 index 0000000..143a991 --- /dev/null +++ b/intellect-framework-from-internet/starts/random-harmonic-hospital/coding-assister.js @@ -0,0 +1,55 @@ +/* NEXT: add aux func + store access order tree + -> make nodes objects */ +/* BTW: need to practice slowly or will have error when fast <- although could have been a 'trick'; clocks */ +async function learn1(name, goal, knowledge) +{ + let focus = [{val: name}] + knowledge[name] = {val: focus} + console.log("Ctx: " + name) + + a = function(idea) + { + focus.push({val: idea}) + //focusUpdated() + } + + randomSeed(0) + + function pickNextIdx(lastIdx, focus) + { // make this function be a contextual property + return Math.floor(random() * (focus.length - lastIdx)) + lastIdx + } + + async function trial() + { + let result = [] + let last = [{focus: focus, idx: 0}] + while (true) { + let llast = last[last.length - 1] + let next = pickNextIdx(llast.idx, llast.focus) + if (next >= llast.focus.length) { + if (random() >= 0.5) { + last.pop() + } else { + llast.idx = 0 + } + if (last.length == 0) { + break + } + continue + } + llast.idx = next + next = llast.focus[idx].val + if (next in knowledge && random() < 0.5) { + // open subcontext or subtree + last.push({focus: knowledge[next].val, idx:0}) + continue + } + result.push(next) + } + let resstr = result.join('') + return await goal(resstr) + } + // TODO: call trial in loop that checks return value +} |