¿Qué idiomas son recursivos solamente?¿Qué idiomas no tienen construcciones de bucle?
Respuesta
Depende de lo que quiere decir con la construcción de bucles: hay varios tipos. bucles infinitos, iteradores - bucles que cuentan cada elemento de una matriz o de hash - y bucles generales como estilo de C
for (int i = 0; i < 10; i++)
Wikipedia tiene una mesa de apoyo a este tipo de construcciones por idioma: Loop system cross reference table
Para responder a su pregunta completamente, Haskell y Scheme son dos ejemplos de idiomas que no tienen los lazos estándar for
integrados; generalmente se hacen usando recursión.
en Scheme, por ejemplo, "recursividad de cola" desempeña el papel de una construcción de bucle. –
La respuesta obvia (si cuenta como idioma) son varios tipos de idiomas de ensamblado.
Diría que un salto condicional es exactamente una "construcción de bucle", pero depende de la definición de uno. – Svend
Dado que OP dijo "recursivo-only" y la forma común de hacer iteración en el ensamblado son los saltos, no la recursividad, diría que esto no cuenta. – sepp2k
Ok, podría estar de acuerdo, esto es más bien una cuestión de redacción. Los saltos condicionales son "construcciones de ramificación" y mientras puedas saltar "hacia atrás" podría ser un ciclo. –
Erlang no tiene construcciones de bucle. Usas recursion en su lugar.
Prolog y otros logic programming languages.
Como un lado, ¿no se reduce esta pregunta más o menos al paradigma de programación? Los lenguajes imperativos tienen constructos de bucle; otros no tienen.
Editar: lenguaje diseñado específicamente para hacer que sacarte los ojos, como
Functional programming idiomas (por ejemplo, Haskell, Erlang) en general no tienen bucles, ni function-level idiomas (por ejemplo PF, J) o logic idiomas (por ejemplo Prolog, Planner). De hecho, casi todo el grupo de declarative idiomas (de los cuales funcional, nivel de función, lógica, etc. son un subconjunto) tienden a no tener construcciones de bucle.
Pero ...
Dicho muchos de los que tienen formas de hacer lo mismo que un bucle explícito. Common Lisp, por ejemplo, tiene macros que le dan la capacidad de hacer lo que parece regular para, while, etc. bucles por macro truco detrás de las escenas. Dylan (un Lisp muy poco Lisplike) va un paso más allá y eleva tales macros en algo que es efectivamente parte del lenguaje (aunque la semántica todavía se puede definir en términos de recurrencia y macros). Demasiado, las operaciones comunes en lenguajes funcionales como cremalleras, mapas, pliegues, tomas, etc. son funciones de nivel superior que enmascaran la recursión explícita detrás de una llamada de función y actúan de muchas maneras como construcciones de bucle ordenadas.
- 1. ¿qué idiomas tienen IEEE 754 correcto?
- 2. ¿Qué idiomas tienen una buena GUI API/Designer?
- 3. ¿Por qué los idiomas de oop no tienen un modificador de acceso de "solo lectura"?
- 4. ¿Qué otros idiomas tienen características y/o bibliotecas similares al formato de Perl?
- 5. ¿Qué frameworks web e idiomas tienen el menor tiempo de desarrollo?
- 6. Qué etiquetas HTML no tienen contenido
- 7. Bucle con StateT: ¿Por qué este bucle no se repite?
- 8. PHP: ¿Qué son construcciones idiomáticas y por qué las necesitamos?
- 9. Cómo simular try-finally o try -excepto en idiomas que no los tienen
- 10. ¿Qué valores tienen nombres?
- 11. ¿Qué son los idiomas ISO?
- 12. ¿Qué significa ordenar en idiomas no alfabéticos (es decir, asiáticos)?
- 13. ¿Bajo qué circunstancias los idiomas dinámicos no son apropiados?
- 14. ¿Qué lenguajes de programación funcionales tienen bibliotecas de bioinformática?
- 15. ¿Por qué los registros de Delphi no tienen herencia?
- 16. ¿Por qué las listas de Scala no tienen un pedido?
- 17. ¿Por qué los controles WPF no tienen propiedad de etiqueta?
- 18. Por qué los métodos de interfaz no tienen cuerpo
- 19. ¿por qué los archivos de encabezado STL no tienen extensión?
- 20. ¿Qué idiomas de alto nivel admiten multithreading?
- 21. F # construcciones de manejo de excepciones
- 22. Jenkins pierde espacios de trabajo periódicamente, desencadena construcciones no deseadas
- 23. Las etiquetas de servidor no pueden contener construcciones <% ... %>
- 24. ¿Por qué las construcciones "fuera de origen" no son las predeterminadas?
- 25. ¿Qué licencia tienen las RFC?
- 26. ¿Qué DNS tienen acceso API?
- 27. ¿Qué características de los idiomas interpretados puede tener una compilada?
- 28. Prolog, lista de construcciones con cláusulas condicionales
- 29. Construcciones sin bloqueo en .net
- 30. Prueba para construcciones internas/intrínsecas
INTERCAL no tiene construcciones de bucle. ;) – kennytm