2016-10-19 1 views
0

Ich sehe Code oft wie die folgende Zeile in ATS:Was bedeutet g0ofg1?

val xs = g0ofg1(xs) 

Die Funktion g0ofg1 sieht aus wie eine Art Casting. Was macht es eigentlich?

Antwort

2

Dies ist ein überladenes Symbol.

In ATS gibt es viele Typen, für die eine indizierte und eine nicht indexierte Variante existiert.

  • Zum Beispiel gibt es int(i) (für einige i von Art int) und int. Beide Typen sind für Ganzzahlen, aber erstere wird durch int sort indiziert.
  • Ein weiteres Beispiel: string (nur ein String) und string(n) (Länge indizierten String)

g0ofg1 ist für eine indizierte Typs in eine nicht-indizierte einer Umwandlung. Da es sich um eine Castfn handelt, sind mit dieser Operation keine Laufzeitkosten verbunden.

g1ofg0 ist für in die andere Richtung gehen: von nicht indiziert zu indiziertem Typ.