Python verwendet bekanntermaßen Einrückungen, um Codeblöcke syntaktisch zu definieren. (Siehe Zusammengesetzte Anweisungen in der Python-Sprachreferenz.) Nach Jahren mit Python bin ich immer noch von dieser Syntax-Funktion fasziniert und sehr angetan.
Aber ich frage mich: Abgesehen von Python und seiner "Vorgängersprache" (*) ABC, welche anderen Programmiersprachen verwenden Einrückungen zur Definition von Codeblöcken ? Codeblöcke bedeuten hier "mehrere Anweisungen, die auf irgendeine Weise als eine Komponente behandelt werden".
Ich interessiere mich besonders für praktische Programmiersprachen, aber vielleicht sind auch esoterische Sprachen erwähnenswert.
(*): " Vorgänger " ist meine Wortwahl, da ich hier kein besseres kenne. Guido van Rossum, der Schöpfer von Python, beschrieb die Beziehung zwischen Python und ABC hinsichtlich der Einrückung in einem Interview wie folgt: " Die Wahl der Einrückung für die Gruppierung war in Python kein neuartiges Konzept. Ich habe dies von ABC geerbt. "
quelle
Antworten:
Wikipedia hat eine umfangreiche Liste von Sprachen, die die Off-Side-Regel 1 verwenden :
1: Ich habe diesen Begriff noch nie zuvor gehört.
quelle
Es gibt: Elm , Haskell , sein Vorgänger Miranda und sein Vorgänger ISWIM , YAML , wo Räume sind von entscheidender Bedeutung für die Syntax und Tabs sind verboten, OCCAM , Kaffee Skript und Cokescript beide Sprache zu Sprache Compiler mit JavaScript als Ziel und esoterische Whitespaces .
Es gibt auch Agda - einen interaktiven Theorembeweiser, den Sie wahrscheinlich nicht im Sinn hatten, dessen Lexer jedoch sehr empfindlich auf Leerzeichen reagiert.
Makefile , das Ziele mit tab-basierten Absichten sammelt.
quelle
(x-y)
nicht(x - y)
) , auch wenn es nicht „praktisch“ genug für die OP sein könnte.Machen paßt Ihre Beschreibung, obwohl es wahrscheinlich nicht ganz das , was Sie im Kopf haben, mit seiner begrenzten Syntax und Macht.
Es zeigt infamously seine Codeblöcke an ( Rezepte ) mit einer bestimmten Form von Leerzeichen: ein Tabulatorzeichen. Alternative Möglichkeiten stehen zur Verfügung (z. B. GNU Make unterstützt die Verwendung eines alternativen Zeichens ), werden jedoch in der Praxis selten verwendet.
Ein weiteres Beispiel, das am Rande schwebt, sind Ansible-Playbooks . Sie werden in YAML angegeben , was stark einrückungsabhängig ist. YAML ist keine Programmiersprache, aber Ansible-Playbooks können als domänenspezifische Programme betrachtet werden.
quelle