私は SML を学んでいますが、次の教科書のコードでエラーが発生する理由がわかりませんでした:
fun recip (x,y) = let val t = x *x + y *y in (x /t, ~y/t) end;
エラーは次のとおりです。
Exception- InternalError: asGenReg raised while compiling
これは Poly/ML 5.7.1 にあります。
このコードは、複素数の逆数を計算し(x,y)
ます。;
場所に括弧を追加しようとしましたが、役に立ちませんでした。
奇妙なことに、次の変更された (間違った) 定義はエラーなしで機能します。
fun recip (x,y) = let val t = x *x + y *y in (x, ~y/t) end;
エラー メッセージはあまり情報を提供しません。
エラーの場所と修正方法を説明してくれる人はいますか?