問題タブ [nemerle]
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.
macros - Boo での演算子の定義
軽量メタプログラミングの一部を Nemerle から Boo に移行しようと考えており、カスタム オペレーターを定義する方法を見つけようとしています。たとえば、Nemerle では次のことができます。
次に、これら2つは同等です:
Boo でこれを行う方法が見つかりません。アイデアはありますか?
boo - 新しい言語はいつ仕事に適したツールですか?
長い間、私は必要な機能セットを見つけるためにさまざまな言語を試してきましたが、見つけることができませんでした。私は自分のさまざまなプロジェクトに適切に適合する言語を持っていますが、これらの言語の共通部分を考え出し、プロジェクトの99.9%を単一の言語で実行できるようにします。私は以下が欲しい:
- .NET上に構築されているか、.NET実装があります
- コンパイル時と実行時の両方で.NETランタイムへの依存関係はほとんどありません(主要なユースケースの1つは、.NETランタイムが完全にカスタムである組み込み開発であるため、これは重要です)
- 管理されていない依存関係のない100%.NETコードのコンパイラがあります
- 任意の式のネストをサポートします(以下を参照)
- カスタム演算子定義をサポートします
- 型推論をサポートします
- 末尾呼び出しを最適化します
- 明示的な不変/可変の定義があります(素敵です-私はこれを愛するようになりましたが、それなしで生きることができます)
- 強力なメタプログラミングのための実際のマクロをサポートします(絶対に必要です)
私が使用している主な2つの言語は、BooとNemerleですが、F#でも遊んでいます。
Nemerleに対する主な不満:コンパイラには恐ろしいエラー報告があり、実装は地獄(コンパイラとライブラリ)としてバグがあり、マクロは関数内または属性としてのみ適用でき、依存関係に関してはかなり重いです(十分ではありませんが)ディールブレーカー)。
Booに対する主な不満:任意の式のネスト(ディールブレーカー)、マクロの記述が困難、カスタム演算子の定義(潜在的なディールブレーカー)がありません。
F#に対する主な不満:醜い構文、メタプログラミングを理解するのが難しい、非フリーライセンス(壮大なディールブレーカー)。
ですから、考えれば考えるほど、自分の言語を開発することを考えます。
長所:
- 必要な構文を正確に取得する
- かなり速くなるターンアラウンドタイムを取得します。定量化するのは難しいですが、開発者の生産性が1.5倍になっても驚かないでしょう。特に、これにより特定のプロジェクトで使用できるテストインフラストラクチャが原因です。
- コンパイラにカスタム機能を簡単に追加して、ランタイムでうまく機能させることができます
- 私は自分が望むように設計され、正確に機能するものを手に入れました-これはNIHのように聞こえますが、これは私の人生を楽にしてくれます
短所:
- 人気が出ない限り、メンテナンスの負担に悩まされます。誰もがもっとプロフェッショナルなものを望んでいると思うので、少なくともNemerleの人々を乗り越えることができることは知っていますが、それには村が必要です。
- 最初の欠点のため、私はプロの設定でそれを使用することを警戒しています。とは言うものの、私はすでにNemerleを使用しており、独自のカスタム変更されたコンパイラーを使用しています。
- それが人気を博さなければ、開発者を見つけることははるかに難しくなり、PaulGrahamが容認すらしないかもしれません。
したがって、これらすべてに基づいて、一般的なコンセンサスは何ですか?これは良いアイデアですか、それとも悪いアイデアですか?そしておそらくもっと有益なことに、私は大きな賛否両論を見逃しましたか?
編集:ネストの例を追加するのを忘れました-これがNemerleのケースです:
編集#2:存在する場合にこの言語に変換されるコードのタイプの例を示すことは害にならないだろうと考えました(S. Lottの答えだけで、私がそれをするのを怖がらせるのに十分かもしれません)。このコードは、カスタム構文(opcode、:=、quoteblockなど)、式のネストなどを多用しています。ここで良い例を確認できます:ここ。
metaprogramming - Nemerleマクロのインフィックス形式
非常に特殊な乗算演算子が必要だとします。次のマクロで実装できます。
そして、私はそれを次のように使うことができます
そしてその仕事。
しかし、私が本当に望んでいるのは、現在開発中のDSLIm用の「英語」のような演算子です。
そして私がそれを次のように使おうとすると
コンパイラは'expected;'で失敗します エラー
何が問題ですか?この中置形式のマクロを実装するにはどうすればよいですか?
.net - Script.Net vs Nemerle
アプリにスクリプトを組み込むことを検討していました。その後、Script.NetとNemerleに出くわしました。私はそれらが異なる構文を持っていることを知っています.Nemerleはマクロをサポートしていますが、Script.Netはサポートしていません. しかし、機能、使用法、柔軟性の点での違いについてもっと知りたいです。そして、どれをお勧めしますか、なぜですか?
ありがとう。
申し訳ありませんが、Nemerle 自体が言語であることに気付きませんでした。記述はスクリプト言語のようです。混乱を招いて申し訳ありません
silverlight - mscorlib 2.0.5.0 (別名 Silverlight mscorlib) でリフレクションを介して型を取得していますか?
お気に入りのプログラミング言語 Nemerle に Silverlight サポートを追加しようとしています。
Nemerle は、コンパイル手順で、主に 2 つのステップでリフレクションを介してすべての型をロードします。
1-) Assembly.LoadFrom を使用してアセンブリを読み込みます 2-) Assembly.GetTypes() を使用して型を取得します
次に、コンパイルの最後に、Reflection.Emit で解決された型を出力します。
この手順は、Silverlight の mscorlib を除く、Silverlight を含むすべてのアセンブリで機能します。
c# では、これは失敗します。
しかし、これは合格します:
後者では、 a.GetTypes() は System.Object の親が存在しないという例外をスローします。
抜け道はありますか?
c# - 和音の用途は何ですか?
Nemerle などの言語は和音の概念をサポートしています。それらの実用的な用途が何であるかを知りたいです。
c# - Nemerle での入力
フォームのコンソールから入力を取得する方法を知りたい:
M 14 65 99 in nemerle. C#では、次の方法でこれを行っています:
しかし、これは Nemerle では機能しません。Nemerleでそれを行う方法を教えてください。
mono - NemerleをMonoにインストールする方法
解決策が見つかりません MonoにNemerleをインストールする方法
Nemerle Studioを持っていますが、それを使ってモノラルを試してみたいです。後でLinux用に何かを作るかもしれませんが、今はWindowsで試してみたいと思います。