Suche Programmiersprache

Hallo,

gibt es eine Programmiersprache (egal ob imperartiv oder deklarativ oder sonst was) in der folgende Definitionen gehen:

  1. Quadrat(x) sei für alle x Element aus R definiert mit x -> x*x
    (Mir ist auch egal, ob man dann „Quadrat“ eine Funktion, oder eine Regel, oder was auch immer, nennt. Ich nenn’s im Folgenden jetzt der Einfachheit halber mal Funktion.)

  2. InvMengenAbb(f) sei für alle Funktionen f, die für eine Teilmenge von R definiert sind, definiert mit f -> f^- wobei f^- für alle y aus R definiert ist mit y -> {x | f(x) = y}

  3. Wurzel(x) sei für alle x Element aus R definiert mit x -> (InvMengenAbb(Quadrat))(x)

Dann sollte am Ende also beispielsweise gelten:
Wurzel(0) = {0}
Wurzel(1) = {-1, 1}
Wurzel(2) = {-1.41421, 1.41421}
Wurzel(-2) = {}

(Mit „definiert“ meine ich wohldefiniert. Von random gibt es natürlich keine Umkehrabbildung.)

Vielen Dank schonmal.

Vielen Grüße
Matthias

Edit01: Ich habe ganz vergessen zu schreiben, dass mit R NICHT der reelle Zahlenraum gemeint ist. Vielmehr steht R für den Wertebereich einer double Variable in Java. R ist also insbesondere endlich! (Bei dem Beispiel mit Wurzel(2) habe ich zwar viele Nachkommastellen weggelassen, aber es kämen auch nur endlich viele hin.)