問題タブ [coercion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
179 参照

haskell - unsafeCoerced 値と一緒に使用すると間違った値を返すことを示す

私は と を試していunsafeCoerceましたが、驚くべき動作を見つけました (とにかく私にとって)。Int8Word8

Word80 ~ 255 の範囲の 8 ビットの符号なし数値です。Int8-128..127 の範囲の符号付き 8 ビット数です。

どちらも 8 ビットの数値であるため、相互に強制しても安全であると想定し、8 ビットの値を符号付き/符号なしのように返すだけです。

たとえばunsafeCoerce (-1 :: Int8) :: Word8、値は 255 になると予想しWord8ます (signed int の -1 のビット表現は unsigned int の 255 と同じであるため)。

ただし、強制を実行するとWord8、動作が奇妙になります。

show xここに戻る方法がわかりません"-1"。を見るとmap show [minBound..maxBound :: Word8]、 の可能な値はありませWord8"-1"。また、型が変更されていなくても、数値に 0 を追加すると動作がどのように変わりますか? 奇妙なことに、影響を受けるのはクラスだけであるようにも見えますShow-私のShowTypeクラスは正しい値を返します。

最後に、コードfromIntegral (-1 :: Int8) :: Word8は期待どおりに動作し、255 を返し、show. このコードは、コンパイラによってノーオペレーションに削減できますか?

この質問は、タイプが ghc で低レベルでどのように表現されるかについての好奇心からであることに注意してください。私は実際に自分のコードで unsafeCoerce を使用していません。

0 投票する
1 に答える
133 参照

r - C/C++ コードから「自然強制」ロジックにアクセスする

unlistまたはを呼び出すcと、型はすべてを表すことができる最小の型に昇格されます。

C/C++ コードからこのロジックにアクセスするにはどうすればよいですか?

cとの C ソースを探したところ、と( )unlistの両方に次のコードが見つかりました。do_c_dfltdo_unlistmain/bind.c

dataタイプの変数は、強制ロジックを定義しているように見えるBindDataルーチンによって計算されます。AnswerTypeただし、型のBindData宣言は inbind.cのみです。

だから:Rの一般的な強制ロジックはどこかにエクスポートされていますか、それともコードをコピーして貼り付けなければなりbind.cませんか?(ネタバレすみません…)

0 投票する
3 に答える
637 参照

ruby - .round(1)以外に、Rubyで整数を浮動小数点に強制するより良い方法はありますか?

タイトルで質問が言っていることだけです。私は整数のペアを持っています。それを浮動小数点に変換して、浮動小数点演算を実行できるようにしたいと考えています (適切なパーセンテージを取得するため)。

現在、私のコードは次のようになっています。

failure_and_run_count 内の int を浮動小数点に変換するより良い方法があることを教えてください。

0 投票する
1 に答える
383 参照

multiple-inheritance - Coqの致命的な死のダイヤモンド

かなり単純な型階層を作成しようとしています。最小限の作業例を次に示します。

その最後の強制により、次の警告が生成されます。

実際、R12to R0(またはSortclass) からの型強制は 2 つの異なるパスを取ることができます。そして、Coqが一般的なケースでこれを許可しない理由を理解しています. だって...どれが使われるの?

ただし、この場合、両方のパスによる強制がまったく同じR1_0 (R12_1 r12)であることを示すことができます。R2_0 (R12_2 r12)しかし、それでも、次の一見有効な公理を追加することはできません。

質問:では、これで問題ないことを Coq に納得させる方法はありますか?

0 投票する
1 に答える
2911 参照

actionscript-3 - 1067 : theplayclass 型の値を関連のない型 main に暗黙的に強制します

スコアを表示するゲームオーバー画面を作成したいので、助けてください。ただし、エラーが発生して、スコアを theplayclass.as から thegameoverclass.as に転送できません。エラーを発生させずに値を別のムービークリップに渡す方法はありますか?

このウェブサイトからソースコードを参照します: http://www.emanueleferonato.com/2008/12/17/designing-the-structure-of-a-flash-game-as3-version/

ここにエラーがあります

C:\Users\xxx\Downloads\Migrate\test\theplayclass.as、54 行目、41 列目 1067: theplayclass 型の値が関連のない main 型に暗黙的に強制されています。

main.as

theplayclass.as

thegameoverclass.as

0 投票する
1 に答える
240 参照

ocaml - 強制タイプの省略レコード

OCaml でレコード型を強制できないのはなぜですか? のような基本型は正常にint動作します。

M以下は、 moduleに含める基本モジュールを構築する例ですAM.tは で省略されたタイプですAM.tある限りint、私はできますA.t' :> M.t。に変更すると{i : int}、コンパイラはサブタイプではないと言います。これには非常に具体的な理由があると思いますか?

トップレベルで:

0 投票する
1 に答える
157 参照

r - for ループの as.Date が予期せず実行される

for ループ内でのこの (確かに非正統的な) 使用がas.Date予期しない結果をもたらすのはなぜですか?

次の日付ベクトルがあります。

もちろん、標準の日付形式で取得するには、次を使用できます

forしかし、スクリプトのコンテキストでは、ループを使用したかったのです。