*
[https://en.wikipedia.org/wiki/Frame_(artificial_intelligence](https://en.wikipedia.org/wiki/Frame_\(artificial_intelligence))
*
[https://web.media.mit.edu/~minsky/papers/Frames/frames.html](https://web.media.mit.edu/~minsky/papers/Frames/frames.html)
What is the right code for implementing the class hierarchy of frames?
I look at the base Frame class as a universal data (and code) type, can hold
both single scalar values, and nested elements, all of them can be attributed
by arbitrary slots. Making oriented graphs of such nodes with types inherited
from the base Frame, we can model any type of data. Some subset of frames can
be treated as executable so we can implement a homoiconic computing system.
type
Frame = ref object of RootObj
typ: string
val: string
slot: Table[string,ptr Frame]
nest: seq[ptr Frame]
let nst = Frame(val:"nested")
let hello = Frame(typ:"hello",val:"world",nest:@[nst])
echo hello[]
Run