diff --git a/TODO.md b/TODO.md index 3dedd47..b540d92 100644 --- a/TODO.md +++ b/TODO.md @@ -2,7 +2,6 @@ > 支持直接递归函数与相互递归函数,不能判断等价的地方就不判断。 -[lang0] `equivalent` -- `FnRecursive` [lang0] `equivalentNeutral` -- `ApRecursive` [lang0] test about equivalent between recursive functions diff --git a/src/lang0/equivalent/equivalent.ts b/src/lang0/equivalent/equivalent.ts index 44c45fa..15e22ac 100644 --- a/src/lang0/equivalent/equivalent.ts +++ b/src/lang0/equivalent/equivalent.ts @@ -30,7 +30,11 @@ export function equivalent( } case "FnRecursive": { - throw new Error() + return ( + right["@kind"] === "FnRecursive" && + left.name === right.name && + left.mod === right.mod + ) } case "Lazy": {