Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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_Algorithm_Parsing_State Machine_Automata - Fatal编程技术网

Javascript 如何将嵌套函数调用树转换为状态机?

Javascript 如何将嵌套函数调用树转换为状态机?,javascript,algorithm,parsing,state-machine,automata,Javascript,Algorithm,Parsing,State Machine,Automata,假设你有这样的系统: const input=[0,1,2,3,4,8,9,6,7,4,5,6,7,3,4,8,9,6,7,7,1,9] 常量输出=解析(输入) console.log(output.join('-')) 函数解析(输入){ 常量输出=[] 迭代(输入,值=>{ 检查(()=>isArray(值), ()=>{//yes数组 const children=parse(值) 输出。推送(…子项) }, ()=>{//not数组 检查(()=>isEven(值),()=>{ 输出推

假设你有这样的系统:

const input=[0,1,2,3,4,8,9,6,7,4,5,6,7,3,4,8,9,6,7,7,1,9]
常量输出=解析(输入)
console.log(output.join('-'))
函数解析(输入){
常量输出=[]
迭代(输入,值=>{
检查(()=>isArray(值),
()=>{//yes数组
const children=parse(值)
输出。推送(…子项)
},
()=>{//not数组
检查(()=>isEven(值),()=>{
输出推送(值)
})
})
})
返回输出
}
函数isArray(值){
返回数组.isArray(值)
}
函数isEven(值){
返回值%2==0
}
功能检查(条件、成功、失败){
如果(条件())成功()
else if(failure)failure()
}
函数迭代(数组、块){
array.forEach(块)

}
这是不可能的。A无法识别/分析A,但只能识别/分析A。您需要一个。

您能演示一下如何做到这一点吗?这就是我想要的,我不想用不同的标题再问同样的问题。如果我要求一个下推自动机,有人会说你不能用自动机(只返回真/假)构建输出。没有自动机也可以重写系统。。。