¿Qué otros lenguajes de programación, aparte de Python y su predecesor, están usando sangría para definir bloques de código? [cerrado]

12

Python usa muy bien la sangría para definir sintácticamente bloques de código. (Ver declaraciones compuestas en la Referencia del lenguaje Python). Después de años de usar Python, todavía estoy intrigado y muy aficionado a esta función de sintaxis.

Pero me pregunto: además de Python y su lenguaje "predecesor" (*) ABC, ¿ qué otros lenguajes de programación están usando sangría para la definición de bloques de código ? Bloques de código significa aquí "declaraciones múltiples que de alguna manera se tratan como un componente".

Estoy particularmente interesado en lenguajes de programación prácticos , pero también vale la pena mencionar los lenguajes esotéricos .


(*): " Predecesor " es mi elección de palabra en defecto de saber aquí una mejor. Guido van Rossum, el creador de Python, describió la relación entre Python y ABC con respecto a la sangría en una entrevista como esta: " La elección de la sangría para la agrupación no era un concepto novedoso en Python; heredé esto de ABC " .

halloleo
fuente
15
No creo que "por favor, denme una lista de lenguajes de programación con la función X" sea una pregunta de informática.
David Richerby
2
Por qué, existe el lenguaje Whitespace en sí mismo que requiere una sangría adecuada para su método central de expresión.
penguin359
1
Probablemente valga la pena mencionar YAML de formato largo, aunque no es un lenguaje de programación en el sentido más estricto, ya que es probablemente uno de los lenguajes más probables con esta característica para que alguien se encuentre después de Python.
Austin Hemmelgarn
1
@ penguin359 También pensé en Whitespace. No es una respuesta a la pregunta porque la sangría, un hecho, no se usa para definir bloques; pero sin duda es el lenguaje en el que el espacio en blanco es más significativo en general.
Peter - Restablece a Monica
1
@DavidRicherby La agrupación por atributo (es decir, categorización) es definitivamente una parte de la ciencia: por ejemplo, una pregunta interesante para un Biology StackExchange podría ser: " ¿Qué otros animales caminan sobre dos patas? " Por lo tanto, considero que la pregunta anterior es muy apropiada para Computer Science StackExchange .
Halloleo

Respuestas:

23

Wikipedia tiene una extensa lista de idiomas que usan la regla de fuera de juego 1 :

  • A B C
  • Abucheo
  • BuddyScript
  • Cobra
  • CoffeeScript
  • Converger
  • Curry
  • Elixir ( , do:bloques)
  • Olmo
  • F # (si #light "off"no se especifica)
  • Genio
  • Haskell (sólo para where, let, do, o case ... ofcláusulas cuando se omiten los apoyos)
  • Informar 7
  • ISWIM, el lenguaje abstracto que introdujo la regla
  • LiveScript
  • Miranda
  • Nemerle
  • Nim
  • occam
  • PROMAL
  • Pitón
  • Esquema, cuando se utiliza, por ejemplo, SRFI 119
  • Girar
  • SG

1: Nunca he escuchado este término antes que yo.

Bergi
fuente
2
¡La regla de fuera de juego es un hallazgo emocionante!
Halloleo
3
No sé si es un idioma como usted o Wikipedia lo entiende, pero los Makefiles también usan sangría.
TheWildHealer
@TheWildHealer El artículo de Wikipedia también tiene una sección con lenguajes que no son de programación (incluyendo cosas como Make, YAML, RST). No lo cité porque OP preguntó por los lenguajes de programación.
Bergi
Tienes razón, la próxima vez me aseguraré de abrir los ojos, gracias.
TheWildHealer
10

Hay: Elm , Haskell , su predecesor Miranda y su predecesor ISWIM , YAML donde los espacios son cruciales para la sintaxis y las fichas están prohibidos, OCCAM , coffeescript y Cokescript tanto son lenguaje para compiladores de lenguaje con JavaScript como objetivo y esotéricos espacios en blanco .

También está Agda , un probador de teoremas interactivo, que probablemente no sea lo que tenía en mente, pero su lexer es muy sensible al espacio en blanco.
Makefile , que reúne objetivos con intenciones basadas en tabulaciones.

Mal
fuente
1
También Miranda, el idioma en el que se basaba Haskell.
rodilla
1
Agda tiene una sintaxis muy parecida a la de Haskell, y es sensible tanto a la sangría como a los espacios: (x-y)no lo es (x - y)) aunque no sea lo suficientemente "práctico" para el OP.
chi
1
Además, CoffeeScript y el CokeScript apenas conocido
Bergi
55
Si YAML cuenta, entonces supongo que los Makefiles también deben
hacerlo
1
También hay PureScript .
Duplode
4

Maquillaje se adapte a su descripción, a pesar de que probablemente no es exactamente lo que tiene en mente, con su sintaxis y limitada de energía.

Es infame indica sus bloques de código ( recetas ) con una forma particular de los espacios en blanco: un carácter de tabulación. Hay formas alternativas disponibles (por ejemplo, GNU Make admite el uso de un carácter alternativo ), pero rara vez se usa en la práctica.

Otro ejemplo flotando en el borde son los libros de jugadas de Ansible . Se especifican en YAML , que depende en gran medida de la sangría. YAML no es un lenguaje de programación, pero los libros de jugadas de Ansible pueden considerarse como programas específicos de dominio.

reinierpost
fuente