Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 编写一个解释器函数_Javascript_Lisp - Fatal编程技术网

Javascript 编写一个解释器函数

Javascript 编写一个解释器函数,javascript,lisp,Javascript,Lisp,我想让解释器功能从Lisp到JS 声明函数的能力如下:[defn,'funcName',['a','b'],['sum','a','b']],其中 defn是定义函数的关键字 “funcName”-函数名 ['a','b']-函数参数的枚举 ['sum','a','b']-函数体(使用参数a和b调用sum函数) 函数调用应该如下['funcName','a','b'] 下面已经实现了一些运行时,并且有一个调用EXPLATE的示例 const defn=(functionName,args,bo

我想让解释器功能从Lisp到JS

  • 声明函数的能力如下:[defn,'funcName',['a','b'],['sum','a','b']],其中 defn是定义函数的关键字 “funcName”-函数名 ['a','b']-函数参数的枚举 ['sum','a','b']-函数体(使用参数a和b调用sum函数)
  • 函数调用应该如下['funcName','a','b']
  • 下面已经实现了一些运行时,并且有一个调用EXPLATE的示例

    const defn=(functionName,args,body)=>{
    //需要实现
    }
    常量解释=(…代码)=>{
    //需要实现
    }
    //运行时使用的函数
    常量和=(…参数)=>args.reduce((上一个,当前)=>上一个+当前)
    //调用解释函数的示例
    常量结果=解释(
    [defn,“sum3”,“a”,“b”,“c'],
    [总和'a','b','c']
    ],[sum3',10,20,30]
    )
    
    assert(result==60)
    关于编写简单的Lisp/Scheme解释器有大量的文献。看看它可能会有所帮助。也许是个开始。