問題タブ [quotations]

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 投票する
1 に答える
265 参照

arrays - 型指定されていない F# 引用符を使用して、型を知らずに配列をコピーする

私は小さなプロジェクトに取り組んでおり、引用符を使用していくつかの基本的なレコード タイプのツリーを複製しています。ほとんどの場合、それが機能しています。大きな問題は配列にあります。

私はいくつかのアプローチを試しましたが、(string -> string) が欲しいのに (obj -> obj) が欲しい、または (object [] -> object []) が欲しいのに (string [] -> string [ ]))。何か案は?


簡単なテストケースを次に示します。


これが私を最も遠ざけた方法です。問題は、配列を型付けすることができないため、レコードを作成しようとするとキャストで常に失敗することです。内包表記にキャストを追加しても役に立ちません。

以下のToyvoのソリューションは、上記の例では機能しますが、レコードの配列では機能しません:

後で来る人のために、ここに作業コードがあります。私はオプションを削除し、それをクリーンアップするのに時間をかけていませんが、それ以外はかなりまともです.

現在では、実際にユニオンでも機能します。乾杯!

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

f# - F# 引数チェック

F# には、次のように使用できる簡潔な引数チェック関数がいくつかあります。

私はより規範的な表現を好みますが、コード コントラクトのように:

ただし、私が書きたいと思っているコードは次のとおりです。

問題は、これを F# で表現できるかどうかです。または別の言い方をすれば、F# で nonNull の実用的な実装はありますか?

私にはそう見えませんが、おそらくここの誰かがそれを確認できます。

0 投票する
0 に答える
1778 参照

f# - F# を使用して高度にデバッグ可能なビジネス ルール エンジンを構築する

問題

論理ツリーを表す F# のコードがあります。これは、かなり単純な数学関数を備えたビジネス ルール エンジンです。ツリーのルールを何度も実行して、ツリーを通る特定の各ルートが何回使用されるかを確認できるようにしたいと考えています。

要件は、現在使用している単純な一致ステートメントから基本ルールをあまり変更しないことです。重要な関数に属性のタグを付けるのは問題ありませんが、すべてのノードでロギング関数の呼び出しを追加するのは適切ではありません。コードを 2 つのモードで実行できるようにしたいと考えています。1 つは応答のみを提供する高パフォーマンスの標準モードで、もう 1 つは各呼び出しの背後にある詳細を提供する「探索モード」です。ルールを動的にロードしてプロファイリングするための複雑なコードは気にしませんが、ルール コード自体は単純に見える必要があります。理想的には、サードパーティのライブラリに依存したくない - powerpack は問題ありません。ソリューションは、.NET 4.0 ランタイムもターゲットにする必要があります。

考えられる解決策

  1. 関数名と引数を使用して、すべての関数にログ呼び出しを追加します。ある種のリリース モードで無効にできたとしても、ルールが乱雑になり、すべての新しいコードを不自然な方法で書かなければならないことを意味するため、これは好きではありません。

  2. 各関数はその結果を返し、それまでに呼び出されたメソッドの名前を含むリストを返します。不自然に見え、パフォーマンスに影響を与えるので、私はこれが好きではありません. 計算式を使用して多くの配管を行うことができると確信していますが、それはルールを単純に保つという要件に違反しています。

  3. 引用符を使用してルール ツリーを解析し、タグ付けされた各関数のサイトに挿入されたログ関数への呼び出しを含む古い式である新しい式を作成します。これは私がこれまでに得た最高のものですが、実行できるように結果の見積もりをコンパイルすることについて心配しています. すべての引用を編集できるわけではないことを理解しています (間違っていたら訂正してください)。ルール コードを F# 言語のサブセットに制限する不安定なプロセスは避けたいと思います。ルールがコンパイルされたら、ソリューションでそれらを処理できるようにしたいと思います。

これはかなり厳しい一連の要件を伴う難しい問題であることは承知していますが、誰かが解決策のインスピレーションを持っている場合は、非常に感謝しています.

編集:私が使用している可能性のあるルールの例を示すために、製品AとBを生産するウィジェット工場を所有している場合、次の単純なコードが使用される可能性があります。このレイヤーをヘルパー関数とフックで装飾することで、数式の読みやすさと単純さを失いたくありません。

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

f# - F# でプログラムによってラムダ式を構築する

次の関数定義を考えてみましょう:

次の引用を使用することにより、その表現をラムダ式として取得します。

この前の質問では、引用符は構文的に引用されたコードを表すと述べられています。つまり、同じ関数を他の関数内にラップしても同じ式を取得できないということです。

前者の式 (Lambda (x, Call (None, dummy, [x]))) をプログラムで作成することはできますか? 目的は、単純な関数 ('a -> 'b) の動的 qwrap を実装することです。結果の式は分析される予定であり、元の関数に記述されているとおりに関数と引数の名前を保持できることに興味があります。

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

f# - resolveTopDef、TopDefnApp、ResolveTopDefinition?

@Tomasp には、定義をラップする代わりにメソッドから引用を使用および抽出する方法を参照するいくつかのブログ エントリ (ここに 1 つ) があります(またはそれは?)。[<ReflectedDefinition>]ResolveTopDefinition<@ ... @><@@ ... @@>

いずれにせよ、私はこれらのものを今コンパイルすることができず、機能が変更されたと思います-しかし、私はこれらの名前についてGoogleで見つけた言及が何であるか、または関連していることをほとんど知りませんトーマスのブログと作品へ。

現在の方法は何ですか?

私は Eval.TryGetReflectedDefinition を見てきましたが、それには MethodBase が必要であり、別の/既にコンパイルされたアセンブリを反映しようとしない限り、そのアプローチは必要ないようです。

ありがとう!

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

linq - C# 式の解析を F# に変換する

F# の初心者として、私は定期的に学習課題として C# のビットを変換しようとしています。この場合、次の C# 式の解析コードを変換しようとしています。シンプルです。アイデアは、標準のリフレクション手法を使用するのではなく、ラムダをこの関数に渡してプロパティ名の文字列表現を取得することです。他の GetMemberName 関数は省略しました。これは、取るべきアプローチについて何らかのガイダンスが得られれば理解できると思うからです。

F# には引用符があることを知っています。また、F# で Linq 式を使用できることも知っています。最初に引用符を使用して F# の方法で試してみたいのですが、つまずいています。誰かが私にキックスタートを与えることができますか?

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

python - 引用符の間から文字列を抽出するpython 3.4シリアルポート

自分のコンピューターのどのシリアル ポートが使用されているかを特定したいのですが、そのために、(Eltima 仮想シリアル ポート ドライバー 7.1 のような仮想シリアル ポート エミュレーターである VSPE) と次のコードを使用します。

今、このコードは私に与えます

答えとして

私の質問は、どうすればこれを取り除くことができるかです:[' ']

私はただCOM9または少なくとも が欲しいだけで、他には9何もありません。

0 投票する
0 に答える
38 参照

java - ウィンドウ「ラジオボタンテスト」をウィンドウ、ラジオボタンテストに分割

Java で入力ファイルを正しく解析できません。

入力ファイル:

Window "Radio Buttons" (300, 200)

次のように分割する必要があります。

私は現在line.split("\\s")、私に与えているものを使用しています:

どの区切り文字または正規表現を使用すればよいかわかりません。

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

f# - F# クォーテーションで一般的な共用体ケースを構築するにはどうすればよいですか?

次のコードは失敗します。

ただし、次の例外があります。

Cons ユニオン ケースのジェネリック パラメータ タイプを指定するにはどうすればよいですか?

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

encoding - Difference between double and single quotation marks in fortran?

I'm just starting out on Fortran and am confused with the usage of double vs single quotation marks.