【问题标题】:Using Tau-Prolog with React将 Tau-Prolog 与 React 结合使用
【发布时间】:2020-03-29 06:48:57
【问题描述】:

我正在尝试将 Tau-Prolog 与 Node.js 和 React 一起使用。

在步骤:

session.consult(program);   

我收到此错误消息:

TypeError: fs.existsSync is not a function

这里是重现问题的代码:

index.js

import React from 'react';
import ReactDOM from 'react-dom';

// These alternatives makes no difference:
var pl = require('tau-prolog');
// var pl = require('./tau-prolog/modules/core.js');
// var pl = require('./tau-prolog.js');

class App extends React.Component {
    componentDidMount() {
        let program = 'fruit(apple). fruit(banana).';
        let session = pl.create();
        // Until here, it's ok. I get Session {rules: {…}, src_predicates: {…},

        // The trouble is at this step:
        session.consult(program);
        ////////
        //////// TypeError: fs.existsSync is not a function
        ////////
    }
    
    render() {
        return <div>Hello world</div>;
    }
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

感谢您的帮助!

【问题讨论】:

标签: node.js reactjs prolog ffi tau-prolog


【解决方案1】:

您不需要在服务器端使用它,除非您想在服务器端评估 prolog 程序并请求结果。

如果你只是想在前端使用 react ,你可以像任何其他前端库一样简单地加载它,将它添加到你的 html 中

<script type="text/javascript" src="tau-prolog.js"></script>
<script type="text/javascript" src="tau-prolog/core.js"></script>
<script type="text/javascript" src="tau-prolog/lists.js"></script>

然后获取包含 Prolog 代码的外部 .pl 文件,或者像在 the examples 或反应中一样内联使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 2023-03-18
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多