Joy ist eine funktionale Programmiersprache, in der konsequent die umgekehrte polnische Notation verwendet wird.

Joy wurde von Manfred von Thun, tätig an der La Trobe University in Melbourne (Australien), entwickelt. Der Kerngedanke ist die Komposition von Funktionen, wobei eine Reihe von Kombinatoren zur Verfügung steht. In einfachen Fällen sieht JOY-Code wie FORTH aus, die Aussagekraft ist jedoch weitaus mächtiger, da Datenstrukturen (und gleichermaßen Programmstrukturen) beliebiger Komplexität auf dem Stack (Stapel) verarbeitet werden können.

Beispiel: Fakultät (unter Benutzung des Kombinators für primitive Rekursion):

DEFINE fak == [1]  [*]  primrec

Aufrufbeispiel:

5 fak

was so zu verstehen ist:

  • Lege der Reihe nach die Konstante 5 und die Listen [1] und [*] auf den Stapel.
  • primrec liest die obersten drei Stapelelemente. Wenn das dritte gleich 0 ist, wird das zweite [1] als Ergebnis auf den Stapel gelegt. Andernfalls wird es um 1 dekrementiert, auf den Stapel gelegt, und rekursiv wieder primrec aufgerufen. Auf dem Rückweg wird das erste Element [*] als Funktion auf die beiden obersten Stapelelemente angewandt und das Ergebnis (in diesem Fall 120) wieder auf den Stapel gelegt.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.