我正在编写一个Haskell课程的自动评分程序。在“尾递归”部分,我需要一种自动且安全地检测给定Haskell函数是否为尾递归的方法。
我已经搜索过现有的工具,但没有找到任何东西。我认为一定有一种自动化方法可以实现这一点,因为毕竟这就是Haskell编译器为我们做的事情。由于评分程序是项目中的外部实体,所以该方法不必使用特定语言或任何其他语言编写(例如,它可以是一个Haskell库、命令行工具或使用任何其他语言编写的代码(C、Java、Python等))。
如果实际上没有这样的工具,我认为我将不得不使用类似于Haskell的词法分析器,并编写自定义代码来检测尾递归。