問題タブ [dynamic-language-runtime]
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# - ネストされた相互再帰関数のコンパイル
私はおもちゃの動的言語 (javascript に悩まされている) を作成しています。私の実装は DLR の上にありますが、この問題の解決策はかなり言語/プラットフォームに依存しないと考えました。
再帰関数、または隣り合って存在する相互再帰関数をコンパイルすることに問題はありません。しかし、ネストされた相互再帰関数をコンパイルするのは非常に困難であることが判明しました。
テストに使用している関数の例は次のとおりです
これを解決するための解決策はかなり一般的でなければならず (おそらく私が間違っているかもしれません)、DLR に固有のものではないと考えました。どうにかしてgの内部定義を取り除き、それをfの前に定義し、クロージャを維持する必要があると思います。環境。
.net - .NET4.0DLRでサポートされている動的言語
.NET 4.0 DLRがサポートする動的言語のリストを知っていますか?
IronRuby、IronPythonがサポートされていることは知っています。IronSchemeがそうであるかどうかわからない。F#?ほかに何か?
ありがとう!
c# - DynamicObjectの暗黙的なキャスト
DynamicObjectのサブクラスがあり、DOの明示的なキャストメソッドTryConvertと同様に、プリミティブ型の暗黙的なキャストを実装したいと思います。つまり、複数の暗黙的な演算子[type]関数を記述しません。
使用法:
それは可能ですか?もしそうなら、どのように?
reflection - メンバーを動的オブジェクトに動的に追加する
メンバーを動的オブジェクトに動的に追加する方法を探しています。OK、少し説明が必要だと思います...
あなたがそれをするとき:
プロパティはBar
実行時に動的に追加されます。しかし、コードは引き続き Bar を「静的に」参照します (「Bar」という名前はハードコードされています)... コンパイル時に名前を知らずに実行時にプロパティを追加したい場合はどうすればよいでしょうか?
クラスのメソッドを使用して、カスタムの動的オブジェクトでこれを行う方法を知っていますが (実際には数か月前にブログを書きました)、動的オブジェクトでどのように行うことができますか?DynamicObject
おそらくIDynamicMetaObjectProvider
インターフェースを使用できますが、使用方法がわかりません。たとえば、どの引数をGetMetaObject
メソッドに渡す必要がありますか? (それは を期待しますExpression
)
ところで、動的オブジェクトに対してどのようにリフレクションを実行しますか? 「通常の」リフレクションでTypeDescriptor
、動的メンバーを表示しない...
どんな洞察もいただければ幸いです!
c# - C# で byte[] を宣言して、ironpython がそれをタプルではなく byte[] として解釈する方法
C++/CLI には、これを返す関数があります。
IronPython はこれをbyte[]
.
C# には、これを返す関数があります。
C# クライアントは Outbuffer を として扱いますがbyte[]
、IronPython はそれを複数の配列を含むタプルとして扱います。
IronPythonをタプルではなく としてOutBuffer
関連付けるにはどうすればよいでしょうか?byte[]
C# と C++/CLI の不一致はなぜですか?
編集:この質問は提起され、明らかに解決されていますが、回答は提供されていません。これは修正できますか?
c# - .NET 3.5 に組み込まれた「スクリプト」言語として、IronRuby の代わりに C#
C# を .NET 3.5 アプリケーションの埋め込み内部スクリプト アプリケーションとして使用するためのベスト プラクティスは何ですか? いくつかの小さな IronRuby スクリプトを含むアプリがあります。いずれも、IronRuby の動的な性質を実際に利用していません。
どうやら、現在 IronRuby や IronPython を使用することは、私たちの企業標準に反しているようです。おっと。代わりに C# をスクリプト言語として使用する最善の方法は何ですか?
IronRuby で気に入った点の 1 つは、アプリの実行中に小さな変更を加えてから、スクリプトを再実行できることです。C#でこれを行う方法はありますか? または、常にアプリを再起動する必要がありますか?
c# - C#3.5DLR式。動的な質問
私は小さなスクリプト言語を継承しており、管理が少し簡単になるようにDLRに移植しようとしています。これまでのところ、それはかなり簡単です。変数のメンバーを動的に呼び出そうとしましたが、問題が発生しました。現在の言語は.NETで実行され、解析ループとリフレクションを使用してこれを実行しますが、私はそれから逃れることを望んでいました。スクリプト言語の例を次に示します。
$ systen1RemoteURI、$ minBad、および$ minGoodは、$dbconnectionとともにスクリプトで設定される変数です。ただし、$ dbconnectionは、$configと呼ばれる渡された変数からその値を取得します。4つの変数は呼び出し元が使用できる必要があるため、最初はnullとしてラムダに渡されます。生成されたLambdaIL(デバッグビュー)は次のとおりです。
私が理解しようとしているのは、Expression.Dynamicを使用して$ config.GetDBConnection( "somedb")を発行する方法です。Symplライブラリの例を見ると、発行されるILは次のようになります。.DynamicCall GetdbConnection($ config、 "somedb")ですが、Expression.Dynamicから実際に発行する方法がわかりません。
正しく作成できないCallSiteBinderが必要なようです。また、ベースではなく「メンバー」のみが呼び出されるように見えるため、Expression.Dynamicのパラメーターの順序がわかりません。
$ configのランタイムタイプはわかりません。これは、GetDBConnection(string)という関数を実装するオブジェクトにすぎません。これは、インターフェースまたは基本クラスによって提供されません。
どんな助けでもいただければ幸いです。
.net - .Netタイプをランタイムエンジンに公開するIronPython
特定の.NetタイプをIronPythonランタイムに公開したいと考えています。私がすることができます:
しかし、それはすべてのタイプをランタイムに公開します。選択的なタイプのロードは可能ですか?
.net - C#アセンブリがScriptingRuntimeから呼び出されているかどうかをどのように判断しますか?
単一のクラスでアセンブリを構築したと仮定します。
次に、ipy.exeから:
BarメソッドがScriptingRuntime内で実行されているかどうかを確認するにはどうすればよいですか?そのランタイムにコールバックを発行することは可能ですか(再入可能)?
.net - IronRuby System.DateTime NilClass
null との比較が非常に不安定なのはなぜですか?
コードするだけです。
9.1 では、このコードは期待どおりに機能します。
編集:
回避策: