哪些语言没有循环结构?

时间:2010-02-28 12:18:12

标签: recursion

哪种语言只是递归语言?

5 个答案:

答案 0 :(得分:6)

这取决于循环构造的含义 - 有几种类型。无限循环,迭代器 - 计算数组或散列中每个项的循环 - 以及像C风格

这样的一般循环
for ( int i = 0; i < 10; i++ )

维基百科有一个按语言支持这种结构的表格:Loop system cross reference table

要完全回答您的问题,HaskellScheme是两个没有内置标准for循环的语言示例;它们通常使用递归完成。

答案 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)

显而易见的答案(如果它算作一种语言)是各种类型的汇编语言。