2016-10-15 1 views

Antwort

0

Es hängt von der Zielsprache ab, zu der Sie kompilieren möchten.

Wenn Sie C kompilieren, können Sie einfach tun:

staload 
UN = "prelude/SATS/unsafe.sats" 

fun int2double(x: int): double = $UN.cast(x) 

Wenn Sie JavaScript kompilieren, dann ist int2double bereits definiert.

1

Ich denke, sobald Sie die folgende bessere Weise ist ...

fun int2double(x: int): double = $UN.cast{double}(x) 
+0

Gibt es eine Möglichkeit, die vorherigen zwei Kommentare zu löschen? –

+1

Sie können dies tun, indem Sie auf die Schaltfläche "Diesen Kommentar löschen" klicken, die angezeigt wird, wenn Sie auf den Kommentar klicken. –

+0

Ich sehe nichts, was gerade schwebt; vielleicht habe ich das Privileg noch nicht verdient :) –

0

Wenn Sie in C-Code sind kompilieren, dann werden Sie in etwa wie folgt verwenden:

fun int2double(x:int): double = g0int2float_int_double (x) 

ist eine eingebaute Funktion (siehe $ATSHOME/prelude/SATS/float.sats für Details).

0

Im Allgemeinen kann man einfach das verwenden, was in der Zielsprache verfügbar ist, um die benötigte Funktion zu implementieren. Zum Beispiel, sagen Sie die folgende Funktion in C:

double int2double_in_c(int x) { return (double)x; } 

Dann können Sie die folgenden ein in ATS erklären:

fun int2double(x: int): double = "mac#int2double_in_c" 

Für jeden Aufruf in ATS int2double erzeugt der Compiler einen Aufruf int2double_in_c im generierten Code. Dasselbe gilt, wenn Sie nach JS, Python, PHP usw. kompilieren wollen.

Verwandte Themen