2016-10-15 18 views

答えて

0

コンパイルする言語によって異なります。

あなたがCにコンパイルする場合、あなただけ行うことができます。

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

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

あなたはJavaScriptにコンパイルする場合は、int2doubleがすでに定義されています。

1

私はあなたが一度以下がより良い方法であると考えて...

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

前の2つのコメントを削除する方法はありますか? –

+1

あなたは、コメントにカーソルを置いたときに表示される "このコメントを削除"ボタンをクリックすることでそれを行うことができるはずです。 –

+0

私は今は何も浮遊していません。多分私は特権をまだ得ていないかもしれません:) –

0

あなたがCコードにコンパイルしている場合は、次のようなものを使用する必要がありますが:

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

は組み込み関数です(詳細は$ATSHOME/prelude/SATS/float.satsを参照してください)。

0

一般に、必要な機能を実装するために、ターゲット言語で利用可能なものを使用することができます。たとえば、あなたがCで、次の機能を持っていると言う:

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

次にあなたがATSで、次のいずれかを宣言することができます。

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

をATSにint2doubleをコールするたびに、コンパイラはへの呼び出しを生成し、生成されたコードのint2double_in_c。 JS、Python、PHPなどにコンパイルする場合も同じです。

関連する問題