哪种语言只是递归语言?
答案 0 :(得分:6)
这取决于循环构造的含义 - 有几种类型。无限循环,迭代器 - 计算数组或散列中每个项的循环 - 以及像C风格
这样的一般循环for ( int i = 0; i < 10; i++ )
维基百科有一个按语言支持这种结构的表格:Loop system cross reference table
答案 1 :(得分:5)
Functional programming种语言(例如Haskell,Erlang)通常没有循环,也没有function-level种语言(例如FP,J)或logic种语言(例如Prolog,Planner)。事实上,几乎所有declarative种语言(功能,功能级别,逻辑等都是子集)都倾向于没有循环结构。
但是...
据说很多人都有与显式循环相同的方法。例如,Common Lisp具有宏,使您能够在幕后通过宏技巧循环执行看起来像常规,等等的循环。 Dylan(一个非常不像Lisp的Lisp)向前迈进了一步,将这些宏提升为有效的语言部分(尽管语义仍然可以用递归和宏来定义)。在拉链,贴图,折叠,取镜等函数式语言中的常见操作是更高级的函数,它们掩盖函数调用后的显式递归,并以多种方式执行,如各种循环结构。
答案 2 :(得分:4)
Erlang没有循环结构。你改为使用递归。
答案 3 :(得分:2)
Prolog和其他logic programming languages。
顺便说一下,这个问题或多或少不是归结为编程范式吗?命令式语言具有循环结构;其他没有。
修改强>: 语言专门设计用于让你睁开眼睛,比如
答案 4 :(得分:0)
显而易见的答案(如果它算作一种语言)是各种类型的汇编语言。