是的,YieldProlog是一个从Prolog到JavaScript的一个很好的子集中的即用型"转换器".
编辑
现在有一个更好的替代品,符合ISO标准:Tau Prolog
编辑
hhprolog的预览,我的端口到Prof.Tarau Hitchhicker Prolog虚拟机的Javascript.
点击[运行代码片段]以Peano表示法计算2 + 2,即纯Prolog的这个片段
add(0,X,X).
add(s(X),Y,s(Z)):-add(X,Y,Z).
goal(R):-add(s(s(0)),s(s(0)),R).
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/gh/CapelliC/hitchhicker-prolog@8424f251246b5f45d5a7ee7046e3e32d29b8282c/hhprolog-es6.js"></script>
<script>
const add = `
add 0 X X .
add _0 Y _1 and
_0 holds s X and
_1 holds s Z
if
add X Y Z .
goal R
if
add _0 _1 R and
_0 holds s _2 and
_2 holds s 0 and
_1 holds s _3 and
_3 holds s 0 .
`
const prog = new Prog(add)
//prog.ppCode()
const t0 = Date.now()
prog.run(true)
console.log('elapsed secs', (Date.now() - t0) / 1000)
</script>Run Code Online (Sandbox Code Playgroud)