Quais outras linguagens de programação, além do Python e do predecessor, estão lá fora, usando indentação para definir blocos de código? [fechadas]

12

O Python usa famosa indentação para definir sintaticamente blocos de código. (Veja Instruções compostas na Referência da linguagem Python). Depois de anos usando o Python, ainda estou intrigado e gosto muito desse recurso de sintaxe.

Mas eu me pergunto: além do Python e sua linguagem "predecessora" (*) ABC, que outras linguagens de programação existem por aí usando recuo para definição de blocos de código ? Blocos de código significa aqui "múltiplas instruções que de alguma forma são tratadas como um componente".

Estou particularmente interessado em linguagens de programação práticas , mas também vale a pena mencionar as linguagens esotéricas .


(*): " Predecessor " é a minha escolha de palavra por omissão de conhecer aqui uma melhor. Guido van Rossum, criador do Python, descreveu a relação entre Python e ABC em relação à indentação em uma entrevista como esta: " A escolha da indentação para agrupar não era um conceito novo no Python; eu a herdei da ABC. "

halloleo
fonte
15
Eu não acho que "por favor me dê uma lista de linguagens de programação com o recurso X" é uma questão de ciência da computação.
precisa saber é o seguinte
2
Ora, existe a própria linguagem Whitespace que requer indentação adequada para seu principal método de expressão.
Penguin359 9/05/19
1
Vale a pena mencionar o YAML de formato longo, embora não seja uma linguagem de programação no sentido mais estrito, pois é provavelmente uma das próximas linguagens mais prováveis ​​com esse recurso para alguém encontrar após o Python.
Austin Hemmelgarn
1
@ penguin359 Eu também pensei em espaço em branco. Não é uma resposta para a pergunta porque o recuo não é usado para definir blocos; mas é certamente o idioma em que o espaço em branco é mais significativo no geral.
Peter - Restabelece Monica
1
@DavidRicherby O agrupamento por atributo (ou seja, categorização) é definitivamente uma parte da ciência: por exemplo, uma pergunta interessante para um StackExchange de Biologia poderia ser: " Que outros animais andam sobre duas pernas? " Portanto, considero a pergunta acima muito apropriada para o StackExchange de Ciência da Computação .
halloleo

Respostas:

23

A Wikipedia possui uma extensa lista de idiomas que usam a regra secundária 1 :

  • abc
  • Vaia
  • BuddyScript
  • Cobra
  • CoffeeScript
  • Convergir
  • Curry
  • Elixir (, do: blocos)
  • Olmo
  • F # (se #light "off" não for especificado)
  • Gênio
  • Haskell (apenas para where, let, dooucase ... of cláusulas quando as cintas são omitidos)
  • Informar 7
  • ISWIM, a linguagem abstrata que introduziu a regra
  • LiveScript
  • Miranda
  • Nemerle
  • Nim
  • occam
  • PROMAL
  • Pitão
  • Esquema, ao usar, por exemplo, SRFI 119
  • Girar
  • XL

1: Eu nunca ouvi esse termo antes de mim.

Bergi
fonte
2
A regra do lado de fora é uma descoberta emocionante!
Halloleo 10/05/19
3
Não sei se é um idioma que você ou a Wikipedia entende, mas os Makefiles também usam indentação.
TheWildHealer 10/05/19
@TheWildHealer O artigo da Wikipedia também possui uma seção com linguagens que não são de programação (incluindo coisas como Make, YAML, RST). Não citei isso porque o OP perguntou sobre linguagens de programação.
Bergi 10/05/19
Você está certo, da próxima vez eu vou abrir meus olhos, obrigado.
TheWildHealer 10/05/19
10

Existem: Elm , Haskell , o seu antecessor Miranda e seu antecessor ISWIM , YAML onde os espaços são cruciais para a sintaxe e guias são proibidos, OCCAM , Coffee roteiro e Cokescript ambos são linguagem para compiladores de linguagem com JavaScript como alvo e esotéricos espaços em branco .

Há também o Agda - provador de teoremas interativo, que provavelmente não é o que você tinha em mente, mas seu lexer é muito sensível ao espaço em branco.
Makefile , que reúne destinos com intenções baseadas em guias.

Mal
fonte
1
Também Miranda, a língua que Haskell se baseava.
kne 9/05/19
1
A Agda tem uma sintaxe muito semelhante a Haskell e é sensível a recuos e espaços: (x-y)não é (x - y)) mesmo que possa não ser "prática" o suficiente para o OP.
chi
1
Além disso, CoffeeScript eo mal conhecido CokeScript
Bergi
5
Se o YAML conta, suponho que os Makefiles também
devam
1
Há também PureScript .
Duplode
4

Faço se encaixa na sua descrição, mesmo que provavelmente não seja exatamente o que você tem em mente, com sua sintaxe e poder limitados.

É infame indica seus blocos de código ( receitas ) com uma forma particular de espaço em branco: um carácter de tabulação. Formas alternativas estão disponíveis (por exemplo, o GNU Make suporta o uso de um caractere alternativo ), mas raramente são usadas na prática.

Outro exemplo pairando no limite são os manuais Ansible . Eles são especificados no YAML , que depende fortemente do recuo. O YAML não é uma linguagem de programação, mas os manuais do Ansible podem ser considerados como programas específicos do domínio.

reinierpost
fonte