哪种语言是纯递归语言?
发布于 2010-02-28 12:24:21
这取决于你所说的循环构造的含义--有几种类型。无限循环、迭代器--计算数组或散列中每一项的循环--以及像C语言风格的通用循环
for ( int i = 0; i < 10; i++ )
维基百科有一个按语言列出的支持此类结构的表:Loop system cross reference table
发布于 2010-02-28 12:58:21
Functional programming语言(如Haskell,Erlang)通常没有循环,function-level语言(如FP,J)或logic语言(如Prolog,Planner)也没有循环。实际上,几乎所有的declarative语言(函数式、函数级、逻辑级等都是其中的一个子集)往往没有循环结构。
但是..。
也就是说,它们中的许多都有与显式循环相同的方法。例如,通用Lisp的宏使您能够在幕后通过宏技巧执行看起来像是常规的for、while等循环。Dylan (一个非常不像Lisplike的Lisp)更进一步,将这样的宏提升为语言的有效部分(尽管语义仍然可以用递归和宏来定义)。同样,函数语言中的常见操作,如zips、map、folds、takes等,都是高级函数,它们在函数调用后面屏蔽显式递归,并以各种循环构造的方式工作。
发布于 2010-02-28 12:28:01
Erlang没有循环结构。相反,您可以使用递归。
https://stackoverflow.com/questions/2350993
复制相似问题