問題タブ [polyml]
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.
c++ - PolyML で配列ベンチマークのパフォーマンスを向上させる方法は?
次のエントリを 1 と前のエントリに設定して、配列を反復処理する次のベンチマークがあります。数が特定の上限を超えた場合は、エントリをゼロに設定して続行します。最後に、配列内のエントリを合計します。
質問 : PolyML のベンチマーク結果を改善するにはどうすればよいですか?
Ubuntu x86-64 での時間は次のとおりです。
mlton は C コード (5.2s) とほぼ同じ速度で実行できますが、最新バージョンの gcc を使用して Windows 7 でシームレスにビルドできる PolyML に特に興味があります。(MSYS / MSYS2 および mingw gcc コンパイラを使用した Windows 7 での polyML のビルド手順については、http://lists.inf.ed.ac.uk/pipermail/polyml/2015-August/001593.html を参照してください)
Windows 7 では、最新バージョンの gcc を使用して mlton の最新バージョンをビルドする際に問題が発生しました ( https://github.com/MLton/mlton/issues/61#issuecomment-50982499と同様の問題 ) 。
SML コードは次のとおりです。
C++ コードは次のとおりです。
sml - Windows で Poly/ML のライブラリにアクセスするには?
「PolyML5.6-64bit.msi」インストーラーから Poly/ML をインストールしました。[スタート] メニューで REPL をクリックすると、REPL を開始できます。しかし、そこからライブラリにアクセスする方法がわかりませんか? やってみuse "something"
ましたが、以下のようなエラーになります。
use "Basis"
またはについても同様ですuse "Windows"
。
私は SML の初心者であることに注意してください。いくつかの一般的な SML チュートリアルでコマンドを見つけたようですが、use
正しく使用しているかどうかはまったくわかりません:/
編集:また、ターゲット インストール ディレクトリには、次の 3 つのバイナリ ファイルのみが含まれているようです。そこにソースがあるかどうかは不明です。
edit2:うーん...さらにブラウジングすると、Poly/MLはほとんどの人が純粋に「Isabelle IDE」内から使用しているように見えると思い始めていますか? たぶん、これをインストールすれば、すべてが箱から出して動作しますか? 試してみますが、元の質問は今のところ未解決のままです。
edit3:ええと、Isabelle IDE は奇妙です。具体的には、その中で開かれた SML ファイルを「実行」する方法がわかりません :/ おそらく、この状況ではそれをアンインストール (つまり、削除?) するつもりです。すでに元の質問に。
sml - 関数名の前の型変数と結果のスコープ制限
最近、関数宣言の関数名の前に型変数を使用できることに気付きました。しかし、私はそれがどのように使用されているかを見ることができません。これを使用した例を次に示します。
そこで、これを踏まえていくつか質問があります。まず、関数名の前の型変数のユースケースの良い例は何ですか (引数または戻り値の型シグネチャでのより一般的な型変数とは対照的です)。また、型でできるように、型に特化したいことを示す方法はありますか?:
明示的な型シグネチャを持つ新しい変数 を作成して特殊化を宣言しましたval f
が、これは同じことではないと思います。たとえば、上記の型の例からすると、次のことができると思います。
しかし、それは失敗します。
最後に、型変数が関数内の引数の型を隠しているのはなぜですか? PolyML.print 関数は、実際の値ではなく疑問符 (型がわからないことを示す) を出力するため、これがまったく発生すると推測しているだけです。型を明確に制約する新しい関数を宣言したときでさえ、f
渡される変数の型を認識していませんでした。(この特定の部分は、関数の初期型変数とは何の関係もないと確信していますが、引数の(暗黙の)型変数とは関係ありませんa
。)
sml - 中置としての構造体からの標準 ML エクスポート演算子
構造体の外で使用するために、構造体内で中置演算子を宣言したいと思います。しかし、構造が開かれたとしても、構造の外側に「固定性」が認識されないようです。Poly/ML を使用した例を次に示します。
これは標準 ML の制限ですか?
sml - Poly/ML の構造体の値を検査する
Poly/ML では、グローバル値の名前は次の方法で取得できます。
を使用して、トップレベルの構造体を同様に取得できます#allStruct
。
では、構造内のすべての値を一覧表示するにはどうすればよいでしょうか? つまり、???
以下に実装する方法はありますか?
sml - シグネチャ内のファンクタの結果を含む型の参照
ファンクタの結果から型を導出する構造で使用されるシグネチャで型を参照するにはどうすればよいですか。poly インタープリターを使用した例を次に示します。
まず、Af が構造に対してローカルである場合に、結果の署名に Af が表示される理由がわかりません。次に、この構造 S に一致する署名を作成するにはどうすればよいですか?
このようなものは機能しません:
また、型 f がデータ型ではなく int の場合、最終的に S は f が署名によって隠されているのではなく int であることを認識するようになります。不透明な署名を使用してもintが表示されない場合でも、これは合理的な動作とは思えません。