問題タブ [greenspunning]
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.
language-features - Greenspunning: あなたが作成した言語の最も印象的な拡張機能と、その価値があったかどうか
グリーンスピニング。私たちは皆、必要なものを得るために、言語に欠けている機能をハックする機会がありました。Java で疑似モナディック パターンを実装し、Javascript で Y コンビネータを実装し、C で変数の不変性を実装する...
より優れた機能を求めて、最も印象的な回避策は何だと思いますか? 後から考えると、ハッキングする価値はありましたか? さらに良いことに、それは Ruby のstring#to_procのように、後のバージョンの言語で受け入れられた機能になったのでしょうか?
c# - C# で静的に型付けされた整形式のコンス リスト
私は愚かな質問を自分自身に問いかけ、数時間頭を悩ませてきましたが、結果はありません.
なんらかの理由で C# にコンス セルを実装したいとします (Greenspun の 10 番目のルールで十分です)。これは C# であるため、静的に型付けする必要があります。次のようなもので十分です。
これでstatic void VisitList<T>(? list, Action<T> action)
、整形式のリストを受け取り、T
各要素に対して何かを実行するメソッドができました。整形式のリストT
は、左の要素が整形式のリストで、右の要素が整形式Nil
のコンス セルです。これで、実際の型に置き換えることができます(そうです、 not モナドがあると想像してください): .T
T
?
Either
static void VisitList<T, U>(Either<Nil, ICons<T, U>> list, Action<T> action) where U : Either<Nil, ICons<T, U>>
ありえない質問は、このメソッドに渡すことができる値をどのように構築するのかということです。誰でも作業スニペットを書くことができますか? サンプル コードの残りの部分は次のとおりです。