Join Nostr
2025-10-13 07:06:24 UTC
in reply to

正気・腕力・タコス on Nostr: ?- p(f(X, g(Y))).みたいなfunctorが多重のqueryはどうなるんだ? ...

?- p(f(X, g(Y))).みたいなfunctorが多重のqueryはどうなるんだ?
Anを引数レジスタBnをその他レジスタとして
bytecodeは


put-struct "f/2" A1
put-variable B1, A2
put-struct "g/1" A3
put-variable A4
call p/1
で、読み込み完了時にレジスタは


A1 -> STR heap[0]
A2 -> REF heap[1]
A3 -> STR heap[2]
A4 -> REF heap[3]
B1 -> REF heap[1]
んで読み込み後のヒープは


[ SST f
, REF self
, SST g
, REF self
]
みたいにflattenしてしまうとf(X, g(Y))とf(X), g(Y)の区別が付かないのでは?と思ったがSSTにarityを保存することでそこの区別をつけているのか (自己解決)